Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#24

Re: TCollection, TCollectionItem

  Alt 19. Okt 2006, 18:28
Hi uwewo,

folgende Bemerkung hat mich etwas grübeln lassen:

Zitat von uwewo:
Leider funktioniert es so nicht, da sich das DateLine dann in einer Endlosschleife befindet.
Obwohl DrawItems nur die neue Position berechnet habe ich dann eine Prozessorauslastung von 100%.

Reagiere ich auf Veränderungen von TDateLine und rufe dann DrawItems auf, habe ich 0% Prozessorauslastung.
Das da was recursiv ist scheint klar zu sein. Das ist der normale Weg für das Zeichnen im Canvas.
Dann probier es doch mal andersrum
Delphi-Quellcode:
procedure Paint; override;
...

procedure TDateLine.Paint;
begin
  DrawItems;
  inherited;
end;
Meine Erfahrung ist, dass man einfach an zu vielen Stellen auf Änderungen reagieren muß. Da rutscht einem immer eine mit durch. Dann gibt es auch Aktionen, bei denen sich eigentlich nichts ändert, aber trozdem ein neu zeichnen notwendig wird. Da die DateItem aber nun auch wieder Controls sind müßten die entsprechende Redraw-Botschaften nach einem Verdecken (z.B. durch andere Fenster) ebenfalls erhalten.
Gut, teste mal die obere Methode und wir werden ja sehen was passiert.

Gruß oki
  Mit Zitat antworten Zitat