AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rahmen um Label

Ein Thema von Hansa · begonnen am 29. Jan 2007 · letzter Beitrag vom 5. Mär 2009
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#11

Re: Rahmen um Label

  Alt 30. Jan 2007, 10:04
Canvas der Form ? Habe jetzt mal folgendes gemacht :

Delphi-Quellcode:
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;
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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Hawkeye219

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

Re: Rahmen um Label

  Alt 30. Jan 2007, 10:29
Zitat von Hansa:
Die Farben gehen so, der Rahmen noch nicht.
Der Grund dafür könnte sein, daß du auf dem Canvas des Labels zeichnest.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Rahmen um Label

  Alt 30. Jan 2007, 10:43
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;
Blackheart
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#14

Re: Rahmen um Label

  Alt 30. Jan 2007, 10:51
Ich Idiot habe ja auch in der showmessage Height anzeigen lassen. Klar, dass das immer gleich blieb.

Delphi-Quellcode:
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;
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 ?

wg. roter Kasten : das ist so ähnlich. Bin aber hingegangen und habe den Code lieber aus dem with rausverlagert. Ergebnis : siehe oben.
Gruß
Hansa
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Rahmen um Label

  Alt 30. Jan 2007, 11:03
Siehe Eintrag 13.
Blackheart
  Mit Zitat antworten Zitat
hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
354 Beiträge
 
Delphi 10.3 Rio
 
#16

Re: Rahmen um Label

  Alt 30. Jan 2007, 11:05
Zitat von Hansa:
Ich Idiot habe ja auch in der showmessage Height anzeigen lassen. Klar, dass das immer gleich blieb.

Delphi-Quellcode:
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;
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 ?

wg. roter Kasten : das ist so ähnlich. Bin aber hingegangen und habe den Code lieber aus dem with rausverlagert. Ergebnis : siehe oben.
Vielleicht nimmst du nun auch noch die Koordinaten des Labels (hast ja aus deinem With rausgeschmissen
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#17

Re: Rahmen um Label

  Alt 30. Jan 2007, 11:30
Mein Source darf nicht nur für "Form1" gelten. Das wird alles vererbt. Letzter Stand ist der hier :

Delphi-Quellcode:
  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);
Sofern die showmessage nicht auskommentiert ist, sieht man den Rahmen und zwar auch mit den richtigen Koordinaten. Repaint nützt da auch nichts.

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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#18

Re: Rahmen um Label

  Alt 30. Jan 2007, 11:32
Zitat von hsg:
..Vielleicht nimmst du nun auch noch die Koordinaten des Labels (hast ja aus deinem With rausgeschmissen
Die Koordinaten gehen doch jetzt. Was gibts da zu lachen ?
Gruß
Hansa
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.875 Beiträge
 
Delphi 12 Athens
 
#19

Re: Rahmen um Label

  Alt 30. Jan 2007, 11:45
Zitat von Hansa:
Ich denke das Rectangle zeichnet nur Linien ? Habe doch kein FillRect etc. verwendet.
Falsch gedacht.
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
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#20

Re: Rahmen um Label

  Alt 30. Jan 2007, 12:13
Ne, Brush bezieht sich auf die Form. Das hier liefert etwas wie im Anhang. Aber nur, solange die showmessage da ist.

Delphi-Quellcode:
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;
Wichtig wäre jetzt erstmal zu wissen, wie das showmessage wegzubekommen ist. Das ist lästig und es könnte Quereffekte hervorrufen.
Miniaturansicht angehängter Grafiken
unbenannt_921.jpg  
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


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 18:52 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