![]() |
FMX: XE7: TDateEdit braucht viel Zeit zur Erzeugung
Liste der Anhänge anzeigen (Anzahl: 1)
Jedes TDateEdit, das auf einer Form liegt, braucht ca. 300 MS (gemessen auf meinem Computer) zur Erzeugung (bei XE6 waren es 0 MS). Hat man einige davon auf der Form, ist das nicht mehr akzeptabel.
Ich habe das mal bei QC gemeldet: ![]() Anliegend auch das Demo-Projekt, was das belegt. Hat Jemand schon mal mit dem Problem zu kämpfen gehabt und kennt einen WorkAround? Die entsprechende TMS-Kalenderkomponente kann ich leider nicht verwenden, da Sie unter MAC OS X nicht funktioniert. Edit: OK, hatte vergessen das Projekt neu zu zippen, wo ich meine hilfsunit weglasse. Anliegend nun ohne hilfsunit. |
AW: FMX: XE7: TDateEdit braucht viel Zeit zur Erzeugung
Projekt lässt sich nicht compilieren...
Unit "hs_tools_fmx" nicht gefunden Edit: Habe mal deine persönliche Unit rausgelassen und getestet. Ist bei meinem XE7 auch so :-( Selbst wenn du im Objektinspektor die 3 Kompos markierst und an eine neue Stelle einfügst (auf der gleichen Form), wirst du arm... Ich habe das mal bis zu 36 Stück probiert. Das ist echt heftig. Das ist kein "kleiner" Bug! |
AW: FMX: XE7: TDateEdit braucht viel Zeit zur Erzeugung
Hallo,
ist das ein reines FMX-Problem, oder ist auch die VCL davon betroffen? Danke und ciao Frank |
AW: FMX: XE7: TDateEdit braucht viel Zeit zur Erzeugung
Habe es zwar nicht getestet, wird aber wohl kaum der Fall sein, da die FMX-Komponente eine ganz andere als die VCL-Komponente ist.
|
AW: FMX: XE7: TDateEdit braucht viel Zeit zur Erzeugung
Das ist ja schon logisch, dass es so lahm ist. Schließlich wird ja die gesamte Kalenderkonfiguration beim Erzeugen aus einzelnen Controls zusammengebaut. Dazu gehören auch mehrere Listboxen mit Einträgen für Tage, Monate und Jahre, Label für Wochentage, Kalenderwochen usw. Eine Beschleunigung ließe sich nur erzielen wenn man Teile davon über mehrere Controls sharen würde.
|
AW: FMX: XE7: TDateEdit braucht viel Zeit zur Erzeugung
Aber das war auch schon bei XE6 so, und hat nicht so lange benötigt. das gleiche Problem scheinen aber auch FastReports auf dem Mac zu haben
![]() |
AW: FMX: XE7: TDateEdit braucht viel Zeit zur Erzeugung
Ja, in XE6 ist die Erzeugung nicht messbar. Problem liegt irgendwo im Bereich des Ladens der Ressource. Bin mal ein wenig mit dem Debugger rein, aber wo es genau liegt, habe ich nicht rausgefunden. So ein einfacher WorkAround scheint nicht möglich zu sein.
Ich hoffe EMBA fixt das schnell. |
AW: RAD Studio XE7: Was Entwickler davon halten...
Liste der Anhänge anzeigen (Anzahl: 2)
Na, bis EMBA fertig ist, mit der Bug-Korrektur, so lange wollte ich nicht warten. Habe daher mir mit einem Frame eine einfache Kalender-"Komponente" selber gebaut.
Die hat die gleichen Eigenschaftswerte (jedenfalls soweit ich diese Komponente benutze), dann kann ich die mit einem Rutsch wieder austauschen, wenn es eine Korrektur von EMBA gibt. In der Anlage mal 2 Screenshots von der MAC-Version (siehe Anlage). Windows-Version ist nun mit XE7 fertig gestellt und im Vertrieb. Gerade macht mir richtig Spaß, mit dem Multiview-Designer die Formulare auf MAC-spezifische Anzeige-Bedingungen anzupassen. Das geht wirklich schnell und einfach. |
AW: FMX: XE7: TDateEdit braucht viel Zeit zur Erzeugung
ich denke das ist ein Refresh Problem, das gefühlte 200.000 mal aufgerufen wird:
Auszug aus den nativen D.P.F Komponenten:
Delphi-Quellcode:
hier solltest Du am OnCreate den Refresh irgnorieren und erst am ab dem OnShow zulassen
7) This is very important to: if you want have very high performance in your project override in all you TForm declrations PaintRects
Sample: type TFDatePicker = class( TForm ) private { Private declarations } protected procedure PaintRects( const UpdateRects: array of TRectF ); override; <---- This line a important ! public { Public declarations } end; and in your implementation: procedure TFDatePicker.PaintRects( const UpdateRects: array of TRectF ); begin {} <-- This is important you not have any [inherited] keyword here ! end; |
AW: FMX: XE7: TDateEdit braucht viel Zeit zur Erzeugung
@arnof
Diese Methode wird beim Start eines Formulars (ein paar
Delphi-Quellcode:
auf der Form) genau 2 mal aufgerufen und auch nachdem
TDateEdit
Delphi-Quellcode:
erfolgte (die Form ist also sichtbar).
DoShow
Bringt also nichts |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:06 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