Delphi XE 5 ; FireMonkey HD Anwendung ; Exklusiv für Windows
Ich hätte gerne ein paar Controls, die eine Rückmeldung an den User geben sollen, sofort aktualisiert. Ich habe das bisher nur mit einem
Application.ProcessMessages
hinbekommen. Geht das auch ohne?
Ich habe ein Minimalbeispiel dazu gestrickt:
Delphi-Quellcode:
unit Unit2;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
FMX.Objects, FMX.Edit;
type
TForm2 =
class(TForm)
Label1: TLabel;
Edit1: TEdit;
Circle1: TCircle;
procedure Edit1Change(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form2: TForm2;
implementation
{$R *.fmx}
procedure TForm2.Edit1Change(Sender: TObject);
begin
// Anzeige das etwas geschieht und etwas Zeit dauert
Circle1.Fill := TBrush.Create(TBrushKind.bkSolid,TAlphaColorRec.Black);
Label1.Text := '
Schwarz';
// gibt es eine Möglichkeit das ProcessMessages zu umgehen?
FMX.Forms.Application.ProcessMessages;
// sleep als Ersatz für eine etwas länger dauernde Prozedur
sleep(2500);
// fertig
Circle1.Fill := TBrush.Create(TBrushKind.bkSolid,TAlphaColorRec.White);
Label1.Text := '
Weiß';
end;
end.