![]() |
Re: Rahmen um Label
Canvas der Form ? :gruebel: Habe jetzt mal folgendes gemacht :
Delphi-Quellcode:
Die showmessage zeigt immer 20 an, also relativ wenig. Die Labels sind auf einer Form verteilt und sollen eine andere Farbe und auch einen Rahmen erhalten, sofern sich der Mauszeiger darüber befindet. Die Farben gehen so, der Rahmen noch nicht.
procedure TfrmKey.lblMouseEnter(Sender: TObject);
begin with Sender as TLabel do begin Color := clSkyBlue; Font.Color := clNavy; showmessage (IntToStr (Height)); Canvas.Pen.Width:=1; Canvas.Pen.Color:=clBlue; Canvas.Rectangle(Left-1, Top-1,Left + Width+1, Top + Height+1); end; end; |
Re: Rahmen um Label
Zitat:
Gruß Hawkeye |
Re: Rahmen um Label
Delphi-Quellcode:
procedure TForm1.Label1MouseEnter(Sender: TObject);
begin with Sender as TLabel do begin Color := clSkyBlue; Font.Color := clNavy; Form1.Canvas.Pen.Width:=1; Form1.Canvas.Pen.Color:=clRed; Form1.Canvas.Rectangle(Left-1, Top-1,Left + Width+1, Top + Height+1); Repaint; end; end; |
Re: Rahmen um Label
Ich Idiot habe ja auch in der showmessage Height anzeigen lassen. :wall: Klar, dass das immer gleich blieb.
Delphi-Quellcode:
Jetzt wird da was gezeichnet, aber an völlig falscher Stelle irgendwo in rechter Form-Ecke. Brauche das Rechteck aber um das Label in Abhängigkeit von dessen Koordinaten. Hat jemand vielleicht noch fertigen Code ? :mrgreen:
procedure TfrmKey.lblMouseEnter(Sender: TObject);
begin with Sender as TLabel do begin Color := clSkyBlue; Font.Color := clNavy; end; showmessage (IntToStr ((Sender as TLabel).Top)); Canvas.Pen.Width:=1; Canvas.Pen.Color:=clBlue; Canvas.Rectangle(Left-1, Top-1,Left + Width+1, Top + Height+1); end; wg. roter Kasten : das ist so ähnlich. Bin aber hingegangen und habe den Code lieber aus dem with rausverlagert. Ergebnis : siehe oben. |
Re: Rahmen um Label
Siehe Eintrag 13.
|
Re: Rahmen um Label
Zitat:
|
Re: Rahmen um Label
Mein Source darf nicht nur für "Form1" gelten. Das wird alles vererbt. Letzter Stand ist der hier :
Delphi-Quellcode:
Sofern die showmessage nicht auskommentiert ist, sieht man den Rahmen und zwar auch mit den richtigen Koordinaten. Repaint nützt da auch nichts.
with Sender as TLabel do begin
Color := clSkyBlue; Font.Color := clNavy; end; //showmessage ('1111'); Canvas.Pen.Width:=1; Canvas.Pen.Color:=clBlue; Canvas.Rectangle((Sender as TLabel).Left,(Sender as TLabel).Top, (Sender as TLabel).Left + (Sender as TLabel).Width, (Sender as TLabel).Top+(Sender as TLabel).Height); Noch ein Effekt : ist der Rahmen zu sehen, dann ist die Label.Caption weg oder wohl eher überdeckt. Ich denke das Rectangle zeichnet nur Linien ? Habe doch kein FillRect etc. verwendet. :shock: |
Re: Rahmen um Label
Zitat:
|
Re: Rahmen um Label
Zitat:
Rectangle zeichnet mit dem Pen einen Rahmen rundum und füllt dann mit dem brush aus. Versuch brush.style auf bsClear zu setzen und evtl auch Brush.Color auf clClear. Hope it helps Thomas |
Re: Rahmen um Label
Liste der Anhänge anzeigen (Anzahl: 1)
Ne, Brush bezieht sich auf die Form. Das hier liefert etwas wie im Anhang. Aber nur, solange die showmessage da ist.
Delphi-Quellcode:
Wichtig wäre jetzt erstmal zu wissen, wie das showmessage wegzubekommen ist. Das ist lästig und es könnte Quereffekte hervorrufen.
procedure TfrmKey.lblMouseEnter(Sender: TObject);
begin with Sender as TLabel do begin Color := clSkyBlue; Font.Color := clNavy; end; showmessage ('KJHJK'); Canvas.Pen.Width := 2; Canvas.Pen.Color :=clBlue; Canvas.Rectangle ((Sender as TLabel).Left,(Sender as TLabel).Top, (Sender as TLabel).Left + (Sender as TLabel).Width, (Sender as TLabel).Top+(Sender as TLabel).Height); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 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