Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Maus Cursor wechsel auf abbruch (https://www.delphipraxis.net/27706-maus-cursor-wechsel-auf-abbruch.html)

HomerGER 14. Aug 2004 11:51


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

Sharky 14. Aug 2004 13:00

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;

HomerGER 14. Aug 2004 13:48

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

Sharky 14. Aug 2004 14:00

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;

HomerGER 14. Aug 2004 15:35

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