Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by SirThornberry,
22. Feb 2008
gelöscht wirds nicht (auch sowas muss ab und zu sein sonst fehlt das persönliche und wir können uns gleich ein trockenes Lehrbuch nehmen) aber jetzt kommt ein dezenter Hinweis:
Lasst uns zum Thema zurück kommen :wink:
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by SirThornberry,
22. Feb 2008
genau, sie stauhen sich in der Messagequeue. Das merkt man besonders gut wenn man mal einen Breakpoint setzt schritt für Schritt durchgeht und plötzlich wieder am Anfang der Funktion ist weil der nächste Aufruf durch Application.ProcessMessages kam.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by SirThornberry,
22. Feb 2008
genau, das Application ProcessMessages sorgt dort drin nur dafür das es möglich ist in einer anderen procedure das Object weg zu ziehen.
Daher am besten mit einem switch arbeiten und zusätzlich natürlich den Timer im Timer-Event abschalten falls eine Aktion mal etwas längert dauert damit sich die Timer-Events dann nicht aufstauen.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by SirThornberry,
22. Feb 2008
Das ist richtig. Du kannst ja am Ende das Enabled von einer Bedingung abhängig machen
TTimer(Sender).Enabled = Timer_still_needed;
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by SirThornberry,
22. Feb 2008
was mir bei dem Quelltext auffällt:
procedure TMainGUI.tmrAblaufTimer(Sender: TObject);
begin
MeinGeraet.HoleDies;
Application.ProcessMessages; // angenommen mein Obj ist schon freigegeben (dann knallts)
MeinGeraet.HoleJenes;
Application.ProcessMessages;
MeinGeraet.HoleDas;
end;