Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
10. Jul 2020
Bei der Variante "im Timer anzeigen was der Thread macht" schon. :stupid:
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
10. Jul 2020
und den Zugriff auf diese Variablen müsste man dennoch synchronisieren, z.B.
* CriticalSection
* oder bei Integer, LongBool und Dergleichen kann auch Atomar gearbeitet werden
InterlockedExchange, InterlockedCompareExchange, InterlockedOr, InterlockedAnd, InterlockedAdd, InterlockedIncrement
bzw. AtomicExchange, AtomicCmpExchange, AtomicIncrement, ...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
10. Jul 2020
Statt Update ein Label.Repaint oder eventuell Label.Parent.Repaint benutzen
oder eventuell ein TStaticText statt TLabel versuchen.
TLabel hat keinen eigenen Canvas und lässt sich von seinem Parent zeichnen.
Und Update zeichnet nur das neu, als vorher als "veraltet" gekennzeichnet wurde.
Ein Repaint macht dagegen Invalidate + Update.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
9. Jul 2020
Eventuell auch ab und man mal sowas wie ProgressMessages, denn Update zeichnet nur neu, aber die Messsages hägnen dennoch und sobald das "ragiert nicht" auf taucht, helfen auch keine Updates mehr.
Bei ProgressMessages aber unbedingt Doppel-/Fehlbedienung unterbinden, z.B. indem alles/bestimmtes Disabled wird, bzw. in der Schleife auch auf Application.Terminated reagieren.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
9. Jul 2020
Diese Pinökel würde aber auch verhinder dass Windows daherkommt, von wegen "Programm reagiert nicht" und das Programm womöglich abgeschossen wird. (egal ob jetzt mit Thread oder regelmäßigem Refresh)
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
9. Jul 2020
Repaint, ProgessMessages oder Dergleichen ... wurde alles schonmal genannt, auch das Warum.