![]() |
Re: Label unter Mausposition
Zitat:
|
Re: Label unter Mausposition
naja also was nun schneller ist kann ich auch nicht sagen. aber die methode von dir würd ich klar bevorzugen!!
so ein umstand von hagen (sry ;)) |
Re: Label unter Mausposition
IMHO ist Hagens Methode auch nicht so ohne weiteres ins .NET übertragbar.... Aber egal...
Zum Problem: Du weist jedem Labelüber den Objektinspektor einfach ein und die selbe Procedure zu, dann ist das ok so. Die Procedure unterscheidet dann, von welchem Label der Aufruf kommt. Sender ist immer das Objekt, von dem der Aufruf kommt (nicht nur bei MouseMove)... Grüße Faux |
Re: Label unter Mausposition
Ich möchte mich da anschließen:
Delphi-Quellcode:
Diese Methode könnte man dann den entsprechenden Labels zuweisen.
procedure TForm1.OnLabelMouseMove();
begin if Sender is TLabel then begin (Sender as TLabel).Color := clGreen; end; end; @ Hagen: Deine Lösung ist zwar recht simpel aber ein Problem hast du denke ich nicht bedacht: Was ist mit den Labels die diesen Effekt nicht erhalten sollen da sie z.B. nur als Beschriftung dienen sollen? Denn die bekommen den Effekt auch verpasst ... |
Re: Label unter Mausposition
Zitat:
Hagens Lösung ist die einzige die exact der geforderte Aufgabenstellung entspricht. ;-) |
Re: Label unter Mausposition
@negaH
ich entwickel net unter kylix ^^ ich hab nur mal in der hilfe nach dem begriff gesucht weil das net ging ... und dann husch pfusch bei uses reingeschrieben ^^
Delphi-Quellcode:
da bekomm ich den fehler "inkombatible Typen - tlabel und tcontrol"
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); var C: TControl; begin C := Controls.FindDragTarget(ClientToScreen(Point(X, Y)), True); if C is TLabel then begin end; end; vielleicht bin ich auch nur zu dumm ^^ |
Re: Label unter Mausposition
Uff, danke Sharky.
Aber prinzipiell stimme ich den Argumenten der Anderen absolut zu, besonders wenn die Frage von einem Anfänger kommt. Ein Komponentenentwickler wird aber eher auf meinen Vorschlag basierend arbeiten da sie OHNE die Verwendung von Events auskommt. Die Art & Weise der Programmierung ist also eine komplett unterschiedliche. Während meine Funktion universell auch für andere kompliziertere Probleme benutzt werden kann, muß bei den anderen Vorschlägen der Programmierer gezielt die Events der schon zur Designzeit existierenden Kompoenten gesetzt werden. Mein Beispiel soll als eine mögliche Alternative zu den anderen Vorschlägen dienen. Man kann sich dann selber das rausziehen was man benötigt. Es hat also reingarnichts damit zu tuen das ich alles verkompliziere ! das ist schon indirekt eine Beleidigung ;) Gruß Hagen |
Re: Label unter Mausposition
Zitat:
Ich vermute mal das du C als TLabel deklariert hast und nicht wie im obigen Post als TControl ! Gruß hagen |
Re: Label unter Mausposition
@Lilo: Verstehst du überhaupt den Unterschied der dir vorgeschlagenen Lösungswege? Hast du auch gelsen, das bei Hagens Code alle Labels betroffen sind?
@Hagen: Ich hab ja nix gegen komplexen Code :roll: Aber wenns einfacher geht, und das selbe bewirkt, dann bevorzuge ich das einfachere. ;) Dein Code "kann" zwar mehr, in diesem Fall, ist es aber (du hast es selbst gesagt), egal, welchen Code man verwendet... :) Gruß Faux NACGTRAG: Zitat:
|
Re: Label unter Mausposition
Hi Leute,
es ist schon ein Kreuz. Manchmal legt man jedes Wort eines Fragestellers auf die Goldwaage, nur um später zu erfahren: "das hatte ich ganz anders gemeint". Andererseits besteht aber auch jederzeit die Gefahr, dass der Helfer für intelligentes Mitdenken abgewatscht wird. In diesem Fall denke ich hat Faux vorbildlich mitgedacht, denn aus der wenig vorbildlichen dafür aber um so mehr typischen Problembeschreibung hat er eine common misconception zu eliminieren versucht: das Delphi framework (vcl) ist objektorientiert und kaum ein Ereignis muss zentral (Form) behandelt werden - fast alles wird an die controls delegiert, wenn es Sinn macht. Wenn Lilo hier gelernt hat, dass man einen einzigen event handler für beliebig viele controls einsetzen kann, dann ist das ein Verdienst von Faux. Alle sonstigen Lösungsansätze sind in der Mächtigkeit ebenbürtig und unterscheiden sich nur im Kodieraufwand. Freundliche Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 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 by Thomas Breitkreuz