Hai HomerGER,
es müsste gehen wenn Du dir ein
MouneEnter und ein
MouseLeave event bastelst:
In dem Beispiel wird beim click auf Button1 ein extra Cursort gesetzt. Wenn über über Button2 kommst wird der Standardcursor angezeigt und beim click auf diesen Button auch wieder der Standardcursor gesetzt.
Delphi-Quellcode:
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
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}
var
mycursor : TCursor;
procedure TForm1.Button1Click(Sender: TObject); //Extra Cursort setzen
begin
myCursor := crHourGlass;
end;
procedure TForm1.Button2Click(Sender: TObject); //Standard setzen
begin
myCursor := crDefault;
end;
procedure TForm1.CMMouseEnter(var Message: TMessage);
var
ptWork : TPoint;
begin
GetCursorPos(ptWork);
if WindowFromPoint(ptWork) = Button2.Handle then
begin
Screen.Cursor := crDefault;
end;
end;
procedure TForm1.CMMouseLeave(var Message: TMessage);
var
ptWork : TPoint;
begin
GetCursorPos(ptWork);
if WindowFromPoint(ptWork) <> Button2.Handle then
begin
Screen.Cursor := myCursor;
end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"