![]() |
Line über Controls zeichnen
Tag alle zusammen,
kann mir vielleicht jemand sagen wie man eine Linie über einem Control zeichnen kann? Wenn ich die Canvas funktion meiner Form verwende ist die Linie immer unter den controls. Ich habe auch bemerkt das TGraphicControl Klassen auch immer unterhalb von TWinControls Klassen sind. Mein Ziel ist es: wenn ich ein objekt auf meiner Form bewege (wo standard controls platziert sind), soll der Ursprungspunkt und die aktuelle mouse-Position mit einer linie verbunden werden. Diese Linie soll dann natürlich an oberster Ebene sein. Thx, Ralfi |
Re: Line über Controls zeichnen
Erzeuge eine Image mit transparenten Hintergrund welches du ganz nach oben bringst.
|
Re: Line über Controls zeichnen
Moin Ralfi,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. Nicht, dass Du Dich wunderst: Ich habe Deinen Doppelpost mal entfernt ;-) |
Re: Line über Controls zeichnen
Danke erstaml für deine rasche Antwort (mkinzler),
aber leider funktioniert es nicht. Das TImage control bleibt auch weiterhin unterhalb z.b. eines Buttons. Auch wenn ich die Sichtbarkeitsreihenfolge zur Laufzeit ändere habe ich nicht den gewünschten Erflog. Hier mein Code:
Delphi-Quellcode:
Hast vielleicht noch eine andere Idee?
...
procedure TForm1.Button1Click(Sender: TObject); var i: integer; begin for i := 0 to self.ControlCount-1 do begin if self.Controls[i].Name = Image1.Name then self.Controls[i].BringToFront; end; Image1.Canvas.LineTo(Image1.Width, Image1.Height); end; ... Thx, ralfi [edit=SirThornberry]Delphi-Tags gesetzt - Mfg, SirThornberry[/edit] |
Re: Line über Controls zeichnen
Versuchs mal statt des Images mit ner PaintBox.
|
Re: Line über Controls zeichnen
Ne funktioniert auch nicht.
Ich versuchs mal mit einer von TComponent abgeleiteten Klasse. Weis jemand vielleicht welche methode ich überschreiben muss um das contol selbst zu zeichnen? thx, ralfi |
Re: Line über Controls zeichnen
Nimm TGraphicControl als Basisklasse, diese enthält einen Canvas.
|
Re: Line über Controls zeichnen
Habe gelesen das TWinControl Objekte immer über TGraphicControl Objekten gezeichnet werden.
(Das ist echt blöd :cry: ) Gibt es vielleicht einen Trick, ein TGraphicsControl Objekt doch über ein TWinControl Objekt zu zeichnen? thx, ralfi |
Re: Line über Controls zeichnen
Hallo,
eventuell hilft Dir das weiter, der Code zeichnet ein rotes Kreutz über eine RadioGroup:
Delphi-Quellcode:
//...
private FCanvas: TControlCanvas; //... procedure TForm1.FormCreate(Sender: TObject); begin FCanvas:=TControlCanvas.Create; FCanvas.Control := RadioGroup1; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin FCanvas.Free; end; procedure TForm1.Button1Click(Sender: TObject); begin FCanvas.Pen.Color := clRed; FCanvas.MoveTo(0,0); FCanvas.LineTo(RadioGroup1.Width,RadioGroup1.Height); FCanvas.MoveTo(RadioGroup1.Width,0); FCanvas.LineTo(0,RadioGroup1.Height); end; procedure TForm1.Button2Click(Sender: TObject); begin //Kreutz entfernen RadioGroup1.Repaint; end; |
Re: Line über Controls zeichnen
mit der winAPI funktion in den HADNLE des formulas müste es doch auch gehen oder ?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 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-2025 by Thomas Breitkreuz