Ich kann mich daran erinnern, das Threading Model von FMX für Android hat sich mal geändert. Aber ich kann mich nicht erinnern wann...
Normalerweise ist ein Application.Run ein Methodenaufruf, der erst dann zurück kommt, wenn die App/Anwendung geschlossen wird...
Nicht so auf Android.
Beispiel:
Delphi-Quellcode:
program Project94;
uses
System.StartUpCopy,
System.Messaging,
FMX.Forms,
Unit70 in 'Unit70.pas' {Form70};
{$R *.res}
var
S : String;
IsSet : boolean;
begin
Application.Initialize;
S := 'Vorher';
IsSet := false;
Form70 := NIL;
Application.CreateForm(TForm70, Form70);
TMessageManager.DefaultManager.SubscribeToMessage( TFormsCreatedMessage,
procedure( const Sender: TObject; const M: TMessage )
begin
if Assigned( Form70 ) and not IsSet then
begin
Form70.Label1.Text := S;
IsSet := True;
end;
end );
Application.Run;
S := 'Nachher';
end.
Was steht auf dem Form? Richtig... "Nachher".
Wegen Java, wollen meine "alten" XE-Versionen nicht und ich habe leider keine VM mehr...
Hat jemand einen Idee?
Grüsse Mavarik