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
 
dynamo

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

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

  Alt 7. Jul 2023, 10:52
Ich habe folgendes Problem unter Delphi11.3 FMX-Android32/64:

auf einen ButtonClick wird ein Datentrasfer ausgelöst. Und zwar werden Mysql-Daten von meiner Netzwerkfestplatte auf mein Handy transferiert.
Für den Zugriff auf die Mysqldaten benutze ich die Devart-Komponente TMyQuery, und für die Überspielung aufs Handy die TFDQuery.
Das Ganze funktiert absolut reibungslos und ist auch eigentlich nicht das Thema hier. Aber da der Datentransfer etwas Zeit dauert, soll der Anwender
darüber informiert werden, dass das System gerade mit etwas beschäftigt ist. Ich dachte an simple Dinge wie z.B. einen Hinweistext an ein TLabel zu geben.
Etwa in der Form:

Delphi-Quellcode:
procedure TForm1.btn_createLocalDatasClick(Sender: TObject); // Aufruf aus dem Menü
begin
  lbl_hinweis.Text := 'erzeuge lokale Daten...';
  Application.ProcessMessages; // (hilft nicht, kann ich auch weglassen)
  createLocalDatas;
end;
Der Hinweisweistext wird auch angezeigt, aber leider erst dann, wenn der Datentransfer abgeschlossen ist. Nur dann brauch ich ihn auch nicht mehr.
Hilfsweise habe ich versucht, wenigstens mit Hilfe einer ColorAnimation zu signalisieren, dass der Button gedrückt wurde.
Macht er auch, aber leider erst nachdem der Datentransfer abgeschlossen ist. Auch dann ergibt das keinen Sinn mehr.

Delphi-Quellcode:
procedure TForm1.createLocalDatas;
var s,st: string;i:Integer;MyQ2 : TMyQuery;FDQ2 : TFDQuery;
begin
  MyQ2 := TMyQuery.Create(nil);
  MyQ2.Connection := MyConn; // im onCreate - Ereignis von Form1 definiert
  FDQ2 := TFDQuery.Create(nil);
  FDQ2.Connection := FDConn; // im onCreate - Ereignis von Form1 definiert
  
  //-------- tbl_eintrag; -------------------
  s:= 'select * from '+ tbl_eintrag;
  MyQ2.SQL.Text := s;
  MyQ2.Open;
  MyQ2.First;
  i:=0;
  while not MyQ2.Eof do
  begin
// lbl_hinweis.Text := 'erzeuge lokale Daten...'; // testweise auch mal an dieser Stelle versucht: keine Anzeige
// application.ProcessMessages; // bringt nichts!
    inc(i);
    st:= MyQ2.FieldByName('_text').AsString;
    st:= parseRichtextToText(st);// aus RichText die Steuerzeichen entfernen (das dauert ...)

      FDQ2.SQL.Text := 'Insert into '+ tbl_eintrag+' (eintragnr,datum,_text,showtgtext) Values('+
                      i.ToString+', '+
                      quotedstr(MyQ2.FieldByName('datum').AsString)+', '+
                      quotedstr(st)+', '+
                      MyQ2.FieldByName('showtgtext').AsString+')';

      FDQ2.ExecSQL;
// lbl_hinweis.Text := 'erzeuge lokale Daten...'; // testweise auch mal an dieser Stelle versucht: keine Anzeige
// application.ProcessMessages; // bringt nichts!

    MyQ2.Next;
  end;

  FreeAndNil(FDQ2);
  FreeAndNil(MyQ2);

end;
Hat jemand eine Idee, wie ich es erreichen kann, dass zuerst der Hinweistext angezeigt, und dann erst die Transferprocedure ausgeführt wird -oder wenigstens während des Prozesses?
Ich brauche wohl nicht zu erwähnen, dass - wenn ich die Windows-Platform wähle, alles bestens funktioniert. Ich bin überzeugt davon, dass es auch
unter Delphi 10.2 so wäre. Aber irgendwas scheint ab Delphi 10.4 anders zu sein.
Jörg

Geändert von dynamo ( 7. Jul 2023 um 13:55 Uhr)
  Mit Zitat antworten Zitat
 


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 04:52 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