![]() |
AW: FireMonkey Sammelthread
Genau genommen fällt mir letztlich nur ein Grund für den aktuellen TAniIndicator ein:
Damit David I. in den früheren Werbevideos stolz eine Animationskomponente präsentieren kann, so dass die potentiellen Käufer natürlich unterstellen, dass man damit irgendwelche Aktivitäten der eigenen Anwendung darstellen kann. Ich glaube inzwischen nichts mehr, was Emba präsentiert. So verarscht habe ich mich noch von keiner anderen Firma gefühlt. |
AW: FireMonkey Sammelthread
Naja, jetzt gibt es ja die Umfrage. Die kannst Du ja entsprechend ausfüllen.
|
AW: FireMonkey Sammelthread
Seid mal nicht ganz so streng. :wink:
Auch in der VCL funktioniert die grafische Ausgabe nicht, solange die Nachrichtenverarbeitung blockiert wird. Hier hilft ja bekanntlich der Aufruf von
Delphi-Quellcode:
, was auch unter FireMonkey möglich ist. Dann werden auch alle Animationen abgearbeitet und Veränderungen des Formulars sichtbar gemacht.
Application.ProcessMessages
Wer aus irgendwelchen Gründen
Delphi-Quellcode:
nicht verwenden möchte (zum Beispiel, damit der Anwender nicht inzwischen wild auf dem Formular herumklicken kann) könnte auch folgenden Classhelper verwenden, der nur die Animationen weiterlaufen läßt und veränderte Elemente aktualisiert:
Application.ProcessMessages
Delphi-Quellcode:
Verwendet werden könnte er wie in meinem
type
TCustomFormHelper = class helper for TCustomForm procedure Repaint; end; procedure TCustomFormHelper.Repaint; var N: Integer; UpdateRect: TRectF; Child: TFmxObject; begin if Assigned(FMX.Types.AniThread) and Assigned(FMX.Types.AniThread.OnTimer) then FMX.Types.AniThread.OnTimer(nil); if ChildrenCount>0 then begin UpdateRect:=TRectF.Empty; for N:=0 to ChildrenCount-1 do begin Child:=Children[N]; if (Child is TControl) and not TControl(Child).UpdateRect.IsEmpty then begin if UpdateRect.IsEmpty then UpdateRect:=TControl(Child).UpdateRect else UpdateRect.Union(TControl(Child).UpdateRect); end; end; if not UpdateRect.IsEmpty then PaintRects([UpdateRect]); end; end ![]()
Delphi-Quellcode:
P.S.:
procedure TForm1.Button1Click(Sender: TObject);
var Time: Cardinal; begin AniIndicator1.Visible:=true; AniIndicator1.Enabled:=true; try Time:=TThread.GetTickCount; while TThread.GetTickCount-Time<=5000 do begin Sleep(50); Label1.Text:=FloatToStr(TThread.GetTickCount-Time); Repaint; //Application.ProcessMessages; end; finally AniIndicator1.Visible:=false; AniIndicator1.Enabled:=false; end; end; TProgressBar funktioniert damit übrigens auch ohne Probleme! :-D |
AW: FireMonkey Sammelthread
Zitat:
Mit XE 5 kommt hoffentlich erst einmal eine vernünftige Unterstützung für Firemonkey für Win/OS/iOS. Und ich hoffe bei Emba mahlt schon mal jemand die neuen Styles für iOS 7. Wenn dass dann alles vernünftig läuft, können dann von mir aus noch andere Plattformen zukommen. Ich glaube aber, am Ende wird wohl nichts Halbes und nichts Ganzes dabei herauskommen. Aber es wird wahrscheinlich so sein, dass Emba im nächsten Jahr stolz die Unterstützung für Android und Windows 8 präsentiert. Am Ende wir man dann mit Firemonkey auf so ziemlich allen Plattformen eine Fish Fact-Demo zum laufen kriegen, und der Rest ist für die Hühner. |
AW: FireMonkey Sammelthread
Ich habe gerade beim Lesen der (XE3-)FireMonkey-Quelltexte einen neuen Geniestreich der Entwickler entdeckt:
Delphi-Quellcode:
Da ist doch tatsächlich jemand auf die Idee gekommen, die Koordinaten aller (!!!) Mausereignisse per
unit FMX.Platform.Win;
function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; [...] begin [...] WM_LBUTTONUP: begin [...] GetCursorPos(P); ScreenToClient(Wnd, P); LForm.MouseUp(TMouseButton.mbLeft, KeysToShiftState(wParam), P.X, P.Y); end; end; [...] end;
Delphi-Quellcode:
zur ermitteln, statt aus lParam
GetCursorPos()
![]() Genial! :thumb: |
AW: FireMonkey Sammelthread
Diese Genialität steckt auch noch in XE4. Viel besser jedoch sind die dort enthaltenen TODOs sowie auskommentierten Korrekturversuche.
Zitat:
|
AW: FireMonkey Sammelthread
Wie, das Zitat steht auf deutsch im Quelltext? Ist ja "toll".
|
AW: FireMonkey Sammelthread
Zitat:
|
AW: FireMonkey Sammelthread
Zitat:
|
AW: FireMonkey Sammelthread
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 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