Einzelnen Beitrag anzeigen

Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
146 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Nix mit plattformübergreifend...

  Alt 6. Jan 2025, 15:36
Bei dem Beispiel mit MessageDLG wird vermutlich direkt die ganze For-Schleife durchlaufen. Der Dialog wartet ja nicht auf die User-Unterkation, sondern ruft asynchron die anonyme Procedure auf, die Du als letzten Parameter übergibst. Da ist die For-Schleife schon nicht mehr aktiv.
Von daher kann auch das Exit nichts mehr bewirken, da es nicht innerhalb der For-Schleife ausgeführt wird. Es verlässt nur die anonyme Procedure, macht also letztlich gar nichts. Ob Showmessage hier funktionieren sollte, weiß ich nicht, aber auch das wird vermutlich nicht modal ausgeführt, also nicht warten, bis der Benutzer OK gedrückt hat.

Man muss mobil wirklich ganz umdenken und es Event-Basiert lösen. Das heisst hier: Keine For-Schleifen in denen Benutzereingaben erwartet werden. Dialog-Boxen sind auch hier nicht ideal. Da würde ich eher auf dem Form die Texte darstellen und mit einem Weiter-Button dann die nächsten etc.

Beim Timer-Beispiel ist es ähnlich. Du rennst mit der For-Schleife direkt das ganze Array durch. Wenn Du darin den Timer auf True setzt, blockiert das nicht die weitere Ausführung der For-Schleife.
Am Ende wird der Timer nur einmal aufgerufen.

Am besten merkst Du Dir global den aktuellen Index (das a bei der For-Schleife),setzt den Text und startest dann den Timer. Innerhalb des Timers erhöhst Du die Nummer und setzt den nächsten Text usw. bis das Maximum erreicht ist.
  Mit Zitat antworten Zitat