AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Direkt auf TForm zeichnen?
Thema durchsuchen
Ansicht
Themen-Optionen

Direkt auf TForm zeichnen?

Ein Thema von Luuuz · begonnen am 20. Jan 2009 · letzter Beitrag vom 20. Jan 2009
Antwort Antwort
Luuuz

Registriert seit: 1. Dez 2008
6 Beiträge
 
#1

Direkt auf TForm zeichnen?

  Alt 20. Jan 2009, 22:38
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
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Direkt auf TForm zeichnen?

  Alt 20. Jan 2009, 22:41
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
Frederic Kerber
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Direkt auf TForm zeichnen?

  Alt 20. Jan 2009, 22:57
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz