Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Line über Controls zeichnen (https://www.delphipraxis.net/77190-line-ueber-controls-zeichnen.html)

ralfi002 15. Sep 2006 21:15


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

mkinzler 15. Sep 2006 21:17

Re: Line über Controls zeichnen
 
Erzeuge eine Image mit transparenten Hintergrund welches du ganz nach oben bringst.

Christian Seehase 15. Sep 2006 21:21

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 ;-)

ralfi002 16. Sep 2006 10:26

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:
...
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;
...
Hast vielleicht noch eine andere Idee?

Thx,
ralfi

[edit=SirThornberry]Delphi-Tags gesetzt - Mfg, SirThornberry[/edit]

mkinzler 16. Sep 2006 11:23

Re: Line über Controls zeichnen
 
Versuchs mal statt des Images mit ner PaintBox.

ralfi002 16. Sep 2006 11:33

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

mkinzler 16. Sep 2006 11:37

Re: Line über Controls zeichnen
 
Nimm TGraphicControl als Basisklasse, diese enthält einen Canvas.

ralfi002 17. Sep 2006 09:08

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

Lannes 17. Sep 2006 10:38

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;

mimi 17. Sep 2006 14:28

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.
Seite 1 von 2  1 2      

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