Cursor zu Sanduhr machen



  • Hallo,

    ich will den Cursor für die Dauer einer längeren Berechnung innerhalb meines Formulars zur Sanduhr machen. Leider wird der Code nicht ausgeführt. Sprich: der Cursor bleibt ein Pfeil. Anklicken kann ich aber nichts.

    Mein Code:

    Cursor Save_Cursor = Screen->Cursor;
    
    MainForm->Cursor = crHourGlass;       // Cursor als Sanduhr
    Application->ProcessMessages();
    
    try
    {
       // Berechnung
    }
    __finally
    {
       MainForm->Cursor = Save_Cursor; // Alten Zustand wiederherstellen
    }
    

    Was fehlt? Was ist falsch?
    Nach der BCB-Hilfe müsste ich eigentlich alles haben.

    Danke.

    Gruß,
    chris_f



  • versuch es mal mit

    Screen->Cursor
    

    anstelle von

    MainForm->Cursor
    


  • Hatte ich schon probiert, kein Unterschied.
    Sorry, hätte ich dazuschreiben sollen.

    So stand es ja auch in der Hilfe.


  • Mod

    Hallo

    versuchs dochmal in einem neuen (leeren) Projekt, ob es da funktioniert

    MfG
    Klaus



  • Mal gehts, mal gehts nicht.
    Ich hab so den Eindruck, dass ich

    Application->ProcessMessages();
    

    einfach oft genug wiederholen muß, bis er es wirklich tut.

    Kann es evtl helfen dem Programm ein kurzes "sleep" zu geben, bevor er den Rechner mit der Berechnung auslastet?



  • Ja, scheint zu gehen.
    Zumindest hat es bei den Versuchen die ich gerade gemacht habe, mit

    Sleep(50);
    

    immer geklappt.
    Wenn nicht elegant, dann eben mit dem Holzhammer.

    Danke für die Hilfe.

    Gruß,
    chris_f


Anmelden zum Antworten