AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung FMX-Android - Kein Hinweis "busy" möglich?
Thema durchsuchen
Ansicht
Themen-Optionen

FMX-Android - Kein Hinweis "busy" möglich?

Offene Frage von "dynamo"
Ein Thema von dynamo · begonnen am 7. Jul 2023 · letzter Beitrag vom 7. Jul 2023
Antwort Antwort
dynamo

Registriert seit: 21. Okt 2008
Ort: Bordesholm
37 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: FMX-Android - Kein Hinweis "busy" möglich?

  Alt 7. Jul 2023, 12:52
Eine Möglichkeit wäre das Verschieben der Arbeit in einen anonymen Thread.
Ja, das funzt bedingt: Der Hinweistext erscheint sofort, und die CreateDatas-Procedure wird auch durchlaufen. Soweit alles gut! Aber wenn die procedure fertig ist, erscheint kein Hinweis: "fertig". Wie krieg ich das noch hin? Der lbl_hinweis.Text bleibt bei 'erzeuge lokale Daten ...' stehen.
Jörg
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.239 Beiträge
 
Delphi 12 Athens
 
#2

AW: FMX-Android - Kein Hinweis "busy" möglich?

  Alt 7. Jul 2023, 15:55
Versuch mal den Synchronize durch Queue zu ersetzen, das ist in der Regel unkritisch

Delphi-Quellcode:
    TThread.Synchronize(nil, procedure

    TThread.Queue(nil, procedure
  Mit Zitat antworten Zitat
dynamo

Registriert seit: 21. Okt 2008
Ort: Bordesholm
37 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: FMX-Android - Kein Hinweis "busy" möglich?

  Alt 7. Jul 2023, 17:05
Versuch mal den Synchronize durch Queue zu ersetzen, das ist in der Regel unkritisch
Das hatte ich auch schon versucht. Es bleibt dabei: lbl_hinweis.text erscheint sofort und createLocalDatas wird durchlaufen, aber der Hinweistext bleibt danach stur erhalten. Ich hatte auch schon versucht, am Ende der createLocalDatas-procedure einen 2. Thread zu machen, in dem der Hinweistext wieder verschwinden soll - Pustekuchen! Ich's auch schon mit ITask versucht:

Delphi-Quellcode:
procedure TForm1.btn_createLocalDatasClick(Sender: TObject); // Aufruf aus dem Menü
var aTask: ITask;
begin
  lbl_hinweis.Text := 'erzeuge lokale Daten...';
  aTask := TTask.create(
  procedure
  begin
    createLocalDatas;

    TThread.Queue(nil, // oder .synchronize(nil ...
            procedure
            begin
              lbl_hinweis.Text := 'fertig';
            end);

  end);
  aTask.Start;
end;
Hat leider auch nichts gebracht. Es ist zum Verzweifeln!
Jörg

Geändert von dynamo ( 7. Jul 2023 um 17:07 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.239 Beiträge
 
Delphi 12 Athens
 
#4

AW: FMX-Android - Kein Hinweis "busy" möglich?

  Alt 7. Jul 2023, 18:03
Bist Du sicher dass nichts Anderes den lbl_hinweis.Text wieder zurücksetzen kann ?
Funktioniert das Label wenn //createLocalDatas; auskommentiert ist ?
Wenn der Debugger bis zum lbl_hinweis.Text := 'fertig'; kommt, sollte es eigentlich funktionieren.
Wird irgendwo bei Dir im Code Application.ProcessMessages; verwendet ?
  Mit Zitat antworten Zitat
dynamo

Registriert seit: 21. Okt 2008
Ort: Bordesholm
37 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: FMX-Android - Kein Hinweis "busy" möglich?

  Alt 7. Jul 2023, 20:12
Wird irgendwo bei Dir im Code Application.ProcessMessages; verwendet ?
Verdammt! Das hatte sich in der Procedure CreateLocalDatas doch tatsächlich noch versteckt!
ich habe Application.ProcessMessages; rausgenommen, und jetzt funktioniert's.
Vielen Dank für den entscheidenden Tipp.
Es funktioniert sowohl mit TThread.synchronize(... als auch mit TThread.Queue(...
Jörg

Geändert von dynamo ( 7. Jul 2023 um 20:21 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz