Maus Cursor wechsel auf abbruch
Hallo
Ich benutze ein ani Cursor wenn irgendwas grade im Programm passiert - so nach dem Motto bitte warten ani_cursor_an try ... hier macht er was finally ani_cursor_aus end ani_cursor_an : aus ressource ani laden ani_cursoraus : ani cursor free und default laden nun suche ich auf der Festplatte nach dateien, bei der suche wird der anicursor eingeschalt nach abgeschlossener suche wird wieder der default cursor geladen. nun hab ich aber ein Button suche abbrechen ich möchte jetzt wenn der Benutzer mit den ani cursor über den button fährt der default cursor angezeigt wird, sollte er den button wieder verlassen soll (wenn die Suche noch andauert) der ani cursor angezeigt werden wenn man auf die systemicon (min, max Close) geht funktioniert das ja schon und genau so wollte ich gern auch haben gibt es da schon ein fertiges Ereigniss? Oder wie kann ich es am besten lösen? Homer |
Re: Maus Cursor wechsel auf abbruch
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; |
Re: Maus Cursor wechsel auf abbruch
hi
in deinem Beispiel wird auf jedenfall umgeschaltet wenn man den Button verläßt bei mir hab ich crHourGlass mach was lange dauert wenn du fertig bist crDefault das haut auch hin Aber ich will crHourGlass mach was lange dauert wenn wenn abbruch move dann (auf jedenfall) crDefault wenn abbruch leave und not fertig crHourGlass sonst crDefault wenn du fertig bist crDefault |
Re: Maus Cursor wechsel auf abbruch
Hai HomerGER,
dann setze doch im OnLeav ereigniss eine Bedingung:
Delphi-Quellcode:
procedure TForm1.CMMouseLeave(var Message: TMessage);
var ptWork : TPoint; begin GetCursorPos(ptWork); if WindowFromPoint(ptWork) <> Button2.Handle then begin if (etwas_das_lange_dauert_nicht_fertig) then begin myCursor := crHourGlass end else begin myCursor := crDefault; end; Screen.Cursor := myCursor; end; end; |
Re: Maus Cursor wechsel auf abbruch
hm das wollte ich vermeiden
ich dache es gäbe ne ereigniss was ich nutzen kann wenn du mit den cursor auf die systemicon geht wird ja auch umgeschaltet und zurück und ich dachte es gäbe es schon fertig - ja ja faule sau sagst du jetzt zu mir :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:05 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