AGB  ·  Datenschutz  ·  Impressum  







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

Label unter Mausposition

Ein Thema von Lilo · begonnen am 13. Sep 2005 · letzter Beitrag vom 11. Nov 2005
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Lilo

Registriert seit: 10. Jul 2005
26 Beiträge
 
#1

Label unter Mausposition

  Alt 13. Sep 2005, 18:18
tach...

und zwar hab ich folgendes problem ^^
ich habe eine form und auf dieser befinden sich ca 30 label... ich will auf die label eine art rolloverefekt haben und en bissl was anderes... und hab nicht unbedingt lust für jedes label ne prozedur zu machen ^^ es soll quasi auf der form bei mousemove eine prozedur rein die prüft ob meine maus über einem label ist und wenn ja, dann brauche ich den name des labels.

ist das einfach möglich? oder ist das mit anderen componenten einfacher? wie statictext oder so...
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Label unter Mausposition

  Alt 13. Sep 2005, 18:21
So müsste es gehen:

Delphi-Quellcode:
procedure TFormname.OnLabelMouseMove(Sender: TObject......);
var
  LabelName: String;
begin
  LabelName := (Sender as TLabel).Name;
end;
Einfach jedes Label mit dieser Procedure im OnMouseMove verlinken.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Label unter Mausposition

  Alt 13. Sep 2005, 18:26
Hi Lilo,

alternativ kannst du bei den TLabel-Komponenten auch mit OnMouseEnter() und OnMouseLeave() arbeiten - je nachdem was du vorhast.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Label unter Mausposition

  Alt 13. Sep 2005, 18:29
Mir ist noch eingefallen, du du mit dem namen nicht viel machen kannst (außer mit der API-FUnktion FindComponent weiter arbeiten). Es wäre sinnvoller wenn du gleich auf die Eigenschaft die du verändern willst (oder auf die Procedure, etc.) zugreifst. Also zB

(Sender as TLabel).Color := clGreen;
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#5

Re: Label unter Mausposition

  Alt 13. Sep 2005, 18:38
Delphi-Quellcode:
procedure TForm1.MouseMove();
var
  C: TControl;
begin
  C := Controls.FindDragTarget(ClientToScreen(Point(X, Y)), True);
  if C is TLabel then
  begin
  end;
end;
Gruß Hagen
  Mit Zitat antworten Zitat
Lilo

Registriert seit: 10. Jul 2005
26 Beiträge
 
#6

Re: Label unter Mausposition

  Alt 13. Sep 2005, 19:09
Zitat von negaH:
Delphi-Quellcode:
procedure TForm1.MouseMove();
var
  C: TControl;
begin
  C := Controls.FindDragTarget(ClientToScreen(Point(X, Y)), True);
  if C is TLabel then
  begin
  end;
end;
Gruß Hagen
das funzt irgendwie nicht... hab bei unit qcontrols eingetragen aber das finddragtarget mkennt der irgendwie nicht... fehlt da noch was?

die varianten von oben sind nicht gut da ich dann wieder auf jedes label ne prozedur machen muss ^^ ich will quasi über eine prozedure das verhalten von 30 labels koordinieren ^^
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#7

Re: Label unter Mausposition

  Alt 13. Sep 2005, 19:12
@Lilo

die methode von faux ist aber genau das, was du suchst. diese EINE procedure wird jedem Label zugeordnet und fertig. über den Sender kannste dann den namen bekommen. wie oben
beschrieben

  (Sender as TLabel).Name wobei ich es immer so mache (geschmackssache):

  TLabel(Sender).Name;
MfG
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#8

Re: Label unter Mausposition

  Alt 13. Sep 2005, 19:14
wieso "QControls" ? davon war nie die rede das du unter Kylix entwickelst, hast du mal die Hilfe bemüht ??

Wichtig ist noch eines: FindDragTarget() findet ALLE Controls der gesamten Anwendung, also auch diejenigen die sich in anderen Forms befinden. Du solltest also mit

if (C is TLabel) and (C.Owner = Self) then sicherstellen das du nur die Labels des Forms ansprichst.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Label unter Mausposition

  Alt 13. Sep 2005, 19:15
Wo liegt eigentlich der Unterschied zwischen Hagens und meiner Methode?
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#10

Re: Label unter Mausposition

  Alt 13. Sep 2005, 19:17
@faux.

also ich denke mal, Hagen sucht über die MouseMove Funktion des Formulars, oder?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     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 06:27 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