Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Apollonius,
9. Jun 2008
Ein paar Kleinigkeiten fallen auf: Gib CreateSuspended im Konstruktor einfach weiter an Inherited, das macht es schon richtig, und spar dir damit auch die letzten beiden Zeilen, die so ziemlich falsch sind.
In GetWindowList sollte der Parameter const sein, da du ja nur ein Assign ausführst, aber keine neue Instanz zuweist.
Dein Destruktor sieht etwas seltsam aus, sollte aber funktionieren.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Apollonius,
9. Jun 2008
Nein, die beiden rufst du nur einmal auf.
Wenn du dir mal die Implementation von TThreadList anschaust, wirst du auch feststellen, dass es nur eine TList mit einer Critical Section ist - es ist also nichts dabei, wenn du dir analog eine TThreadStringList schreibst. Zu schade, dass Delphi noch keine Generics kennt.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Apollonius,
9. Jun 2008
Ja, das funktioniert nicht. Das beste ist, wenn du eine Critical Section einführst, die immer beim Bearbeiten der Liste betreten wird. Beim Auslesen solltest du die Section betreten, den Inhalt an eine neue Liste assignen und die Section verlassen und danach mit der neuen Liste weiterarbeiten, damit der Thread nicht zu lang aufgehalten wird.
Interessant könnten für dich auch einfach verkettete...