![]() |
TRect wird nicht gezeichnet
Hi,
ich versuche im Moment ein Rechteck namens Rec vom Typ TRect auf ein Image zu bekommen. Mein Ansatz lautet so:
Delphi-Quellcode:
procedure TForm16.FormCreate(Sender: TObject);
begin image1.canvas.Pen.mode :=pmNotXor; image1.canvas.pen.style:= psDot; image1.canvas.pen.color:=clRed; end;
Delphi-Quellcode:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin Image1.canvas.brush.style :=bsClear; if shift = [ssleft] then begin x1 := x; y1 := y; Cut.TopLeft.X := x1; Rec.TopLeft.Y := y1; Rec.BottomRight.X := x2; Rec.BottomRight.Y := y2; Image1.Canvas.DrawFocusRect(Rec); end; end;
Delphi-Quellcode:
Wenn ich das jetzt aber versuche, also Maus drücken und gedrückt bewegen und dann loslassen dann flackert das Image ein bisschen aber ein Rechteck ist nicht zu sehen. Was mache ich denn falsch? Muss ich dem Rec irgendwie eine Farbe zum zeichnen oder so zuweisen, und wenn ja, wie?
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin if shift = [ssleft] then begin x2 := x; y2 := y; Rec.TopLeft.X := x1; Rec.TopLeft.Y := y1; Rec.BottomRight.X := x2; Rec.BottomRight.Y := y2; Image1.Canvas.DrawFocusRect(Rec); end; end; MFG Lars Wiltfang |
Re: TRect wird nicht gezeichnet
Hallo
warum nimmst du drawfocusrect und nicht rectangle? Farbzuweisungen gehen über canvas.pen.color (Malfarbe) und canvas.brush.color für Hintergrund, hast du ja auch schon verwendet. In den Demos unter Doc/Graphex findest du auch ein gutes Beispiel, wie das mit dem Ziehen und anzeigen geht. Gruß Frank |
Re: TRect wird nicht gezeichnet
ich würde mal
Delphi-Quellcode:
nich auf bsClear sondern auf bsSolid setzten :D
Image1.canvas.brush.style :=bsClear;
|
Re: TRect wird nicht gezeichnet
Zitat:
|
Re: TRect wird nicht gezeichnet
Egal ob bssolid oder bsclear gesetzt ist, der Umriss des Rechtecks ist nicht rot woran liegt das? Wenn man bssolid nimmt, dann sieht man wenigstens den Umriss des Rechtecks!
|
Re: TRect wird nicht gezeichnet
Zitat:
Delphi-Quellcode:
auch einfach mal weglassen
image1.canvas.Pen.mode :=pmNotXor;
Zitat:
|
Re: TRect wird nicht gezeichnet
Dann sehe ich aber immernoch keine rote Linie die das Rechteck einrahmt!
|
Re: TRect wird nicht gezeichnet
Zitat:
also Image1.canvas.brush.style :=bsClear; passt doch ... aber du darfst nicht DrawFocusRect nehmen sondern Rectangle denn für das DrawFocusRect gelten die farben nicht und es wird immer mit xor zum hintergrund gezeichnet (ist das gleiche wie im explorer wenn du datein markierst (zum ohne xp style)) Keldorn hatte also recht :thumb: |
Re: TRect wird nicht gezeichnet
Aber wie kann ich das dann mit meinem Rec vom Typ Trec machen? Ich will ja mit dem Rechteck Rec anschließend noch was machen. Wenn ich das über Rectangle mache kann ich doch nicht genau auf das unbenannte Rechteck zugreifen oder?
|
Re: TRect wird nicht gezeichnet
Man kann auch
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz