Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Direkt auf TForm zeichnen? (https://www.delphipraxis.net/127896-direkt-auf-tform-zeichnen.html)

Luuuz 20. Jan 2009 22:38


Direkt auf TForm zeichnen?
 
Hallo!

Ich habe eine Anwendung mit zahlreichen Controls erstellt und will den Benutzer auf ein Control hinweisen.
Jetzt wollte ich einfach ein Rechteck um die entsprechende Stellt zeichnen. (soweit die Theorie...)

Kann ich direkt aufs Canvas eines TForms zeichnen? Oder kann ich nur auf ein Image oder ähnliches zeichnen?

Besten Dank im Voraus!

Gruß
Tobias

fkerber 20. Jan 2009 22:41

Re: Direkt auf TForm zeichnen?
 
Hi!

Soweit ich weiß, kannst du auch direkt auf den Canvas der Form zeichnen. Ob das allerdings so sinnvoll ist, weiß ich nicht: wie sieht es nach dem Minimieren des Fensters aus, war dann nicht alles gezeichnete weg?


Ciao, Frederic

Hawkeye219 20. Jan 2009 22:57

Re: Direkt auf TForm zeichnen?
 
Hallo Tobias,

du könntest auch ein TShape hinter das Control legen. Lege ein TShape mit Namen "Shape" auf das Formular und stelle in dessen Eigenschaft Pen die gewünschte Rahmenfarbe und -dicke ein. Die Eigenschaft Visible stellst du auf den Wert False. Mit der folgenden Methode kannst du dann den "Rahmen" für beliebige Controls auf dem Formular ein- und ausschalten.

Delphi-Quellcode:
procedure TForm1.FrameControl(aControl: TControl; aEnable: Boolean);
begin
  if aEnable then
    begin
      Shape.SetBounds(aControl.Left - Shape.Pen.Width,
                      aControl.Top - Shape.Pen.Width,
                      aControl.Width + 2 * Shape.Pen.Width,
                      aControl.Height + 2 * Shape.Pen.Width);
      Shape.SendToBack;
    end;

  Shape.Visible := aEnable;
end;

// Beispiel-Aufruf:

FrameControl (Edit1, True);
In der vorgestellten Form wird allerdings nur ein Rahmen verwaltet. Benötigst du mehrere gleichzeitig, musst du die Routine entsprechend erweitern.

Gruß Hawkeye


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 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