Hallo,
danke für die vielen Anregungen!
Ich denke ich werde das mit OnMouseMover machen, da man damit nur ein mal klicken muss und sich für mehrere Komponenten die Hilfe anzuzeigen (also der Button aktiviert und deaktiviert den Hilfemodus, bei MouseOver zeige ich den Hilfetext an).
Ist der Hilfemodus aktiv, kann ich über alle Komponenten drüber fahren und bekomme so eine Hilfe angezeigt.
Habe mal ein wenig bei TControl ein wenig geschaut und mir dort Code geklaut.
Funktioniert!
Falls es auch andere User interessiert, hier der Quelltext einer Componente, die von TComboBox abgeleitet ist und den event "MouseMove" hat.
Die Inhalte sind wie gesagt von TControl geklaut.....
Delphi-Quellcode:
unit ComboBoxWithMouseMove;
interface
uses
SysUtils, Classes, Controls, StdCtrls, Messages;
type
TComboBoxWithMouseMove =
class(TComboBox)
private
FOnMouseMove: TMouseMoveEvent;
procedure WMMouseMove(
var Message: TWMMouseMove);
message WM_MOUSEMOVE;
protected
procedure MouseMove(Shift: TShiftState; X, Y: Integer);
dynamic;
public
{ Public-Deklarationen }
published
property OnMouseMove: TMouseMoveEvent
read FOnMouseMove
write FOnMouseMove;
end;
procedure Register;
implementation
uses
Forms;
{------------------------------------------------------------------------------}
procedure Register;
begin
RegisterComponents('
OLLI', [TComboBoxWithMouseMove]);
end;
{------------------------------------------------------------------------------}
procedure TComboBoxWithMouseMove.MouseMove(Shift: TShiftState; X, Y: Integer);
begin
if Assigned(FOnMouseMove)
then FOnMouseMove(Self, Shift, X, Y);
end;
{------------------------------------------------------------------------------}
procedure TComboBoxWithMouseMove.WMMouseMove(
var Message: TWMMouseMove);
begin
if not (csNoStdEvents
in ControlStyle)
then
with Message do
if (Width > 32768)
or (Height > 32768)
then
with CalcCursorPos
do
MouseMove(KeysToShiftState(Keys), X, Y)
else
MouseMove(KeysToShiftState(Keys),
Message.XPos,
Message.YPos);
end;
{------------------------------------------------------------------------------}
end.
Gruß
OLLI