AGB  ·  Datenschutz  ·  Impressum  







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

OnMouseOver (Labels)

Ein Thema von citybreaker · begonnen am 21. Feb 2003 · letzter Beitrag vom 22. Feb 2003
Antwort Antwort
Seite 1 von 2  1 2      
citybreaker
(Gast)

n/a Beiträge
 
#1

OnMouseOver (Labels)

  Alt 21. Feb 2003, 19:22
Hallo!

Ich habe heute in einem Programm, das
mit delphi gemacht wurde, etwas gefunden
was ich auch gerne machen würde.

In dem Programm war ein Label (nehme ich mal)
und wenn man mit der Maus über den Labe
ging, glühte er Gelb auf.

Nun meine Frage! Wie macht man soetwas?

cYa Citybreaker
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2
  Alt 21. Feb 2003, 19:26
Hi,
mit der Eigenschaft "Font" eines Labels kann man die Schrift zuweisen. Schaue dir diese Eigenschaft mal an.
Das Ereginis, das du suchst ist "OnMouseMove". Du solltest auch im OnMouseMove des Forms das ganze zurücksetzen...

Chris
  Mit Zitat antworten Zitat
citybreaker
(Gast)

n/a Beiträge
 
#3
  Alt 21. Feb 2003, 19:49
Habs ausprobiert, hat aber leider nicht den gewünschten
Effekt erziehlt. Die schrift bleibt ja schwarz und ein gelber
Rand um der Schrift erscheint.
Trotzdem danke für die Antwort.

cYa Citybreaker
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#4
  Alt 21. Feb 2003, 19:51
Hm... dann versuch mal folgendes (und jetzt mach ich's dir doch komplett):
Delphi-Quellcode:
{in der Label1.OnMouseMove:}
Label1.Font.Color := clBlue;

{in der Form1.OnMouseMove:}
Label1.Font.Color := clBlack;
Chris
  Mit Zitat antworten Zitat
citybreaker
(Gast)

n/a Beiträge
 
#5
  Alt 21. Feb 2003, 19:53
Danke!
Aber hierbei wechselt die Farbe
auch komplett.

cYa Citybreaker
  Mit Zitat antworten Zitat
citybreaker
(Gast)

n/a Beiträge
 
#6
  Alt 21. Feb 2003, 19:57
Hier mal ein Bild.

http://hot-server.de/breakdancer/glow.bmp

cYa Citybreaker
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#7
  Alt 21. Feb 2003, 20:00
Achso... ich habe falsch gelesen. Das mit dem glühen wirst du wohl nur folgendermaßen hinbekommen:
  • Erstelle 2 Labels, die aufeinander liegen
  • Mache das Hintere einen Tick größer (von der Schriftgröße her)
  • Stelle beim hinteren Visible auf false
  • Füge im OnMouseMove des vorderen ein:
    Label2.Visible := true; // das hintere
  • Füge im Form1.OnMouseMove ein:
    Label2.Visible := false;

So sollte es funktionieren, auch wenn es nicht die schönste Möglichkeit ist...

Chris
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#8
  Alt 22. Feb 2003, 10:29
Hai citybreaker,

mit Christian Seehases Code aus diesem Thread

habe ich dies gemacht:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    StaticText1: TStaticText;
  private
    { Private-Deklarationen }
    procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

const
  _clMouseEntered = clyellow;
  _clMouseLeaved = clBtnFace;


{ TForm1 }

procedure TForm1.CMMouseEnter(var Message: TMessage);

var
  ptWork : TPoint;

begin
  GetCursorPos(ptWork);
  if WindowFromPoint(ptWork) = StaticText1.Handle then //Maus ist über dem StaticText
  begin
    StaticText1.Color := _clMouseEntered;
  end;
end;

procedure TForm1.CMMouseLeave(var Message: TMessage);

var
  ptWork : TPoint;

begin
  GetCursorPos(ptWork);
  if WindowFromPoint(ptWork) <> StaticText1.Handle then //Maus verlässt den StaticText
  begin
    StaticText1.Color := _clMouseLeaved;
  end;
end;
Es geht halt nicht mit einem Label sondern mit einem StaticText. Aber damit dürftest Du leben können
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
citybreaker
(Gast)

n/a Beiträge
 
#9
  Alt 22. Feb 2003, 13:45
Danke! Jetzt klappts!

cYa Citybreaker
  Mit Zitat antworten Zitat
Benutzerbild von City Light
City Light

Registriert seit: 17. Sep 2002
314 Beiträge
 
#10
  Alt 22. Feb 2003, 15:26
Oder wie wärs damit?

Delphi-Quellcode:
public
   procedure WNDPROC(var message:TMessage);override;


procedure Tform1.WNDPROC(var message:Tmessage);
begin
if message.LParam=Longint(Label1) then
   begin
   if message.Msg=CM_MOUSEENTER then
   label1.Font.Color:=clred;
   if message.Msg=CM_MOUSELEAVE then
   label1.Font.Color:=clblack;
   end;
inherited WNDPROC(message);
end;
Grüße Tino
Bis bald man liest sich
Tino
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:01 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