Einzelnen Beitrag anzeigen

loirad

Registriert seit: 25. Nov 2009
135 Beiträge
 
Delphi 6 Professional
 
#15

AW: Update des Fensters für eine Zeit unterbinden

  Alt 17. Mai 2012, 16:44
Du musst noch Invalidate oder RedrawWindow(Handle, nil, 0, RDW_ERASE or RDW_FRAME or RDW_INVALIDATE or RDW_ALLCHILDREN) aufrufen
So:
Delphi-Quellcode:
 for i:=0 to length(Tage)-1 do
  begin
   Tage[i]:=TListbox.Create(Kalender);
   Tage[i].Parent:=Kalender;
   SendMessage(Handle, WM_SETREDRAW, WPARAM(False), 0);
   try
   Tage[i].Width:=Kalender.DefaultColWidth;
   Tage[i].Height:=Kalender.DefaultRowHeight;
   Tage[i].Left:=((i+Wochentag-1) mod 7)*(Kalender.DefaultColWidth+1);
   Tage[i].Top:=((i+Wochentag-1) div 7)*(Kalender.DefaultRowHeight+1)+40;
   Tage[i].Style:=lbOwnerDrawFixed;
   Tage[i].Font.Size:=10;
   Tage[i].Items.Add(Zentriere(inttostr(i+1)+'.'+inttostr(m)+'.'+inttostr(y),Tage[i].ClientWidth,Tage[i].Font));
   finally
   SendMessage(Handle, WM_SETREDRAW, WPARAM(True), 0);
   RedrawWindow(Handle, nil, 0, RDW_ERASE or RDW_FRAME or RDW_INVALIDATE or RDW_ALLCHILDREN);
   end;
  end;
geht es leider auch nicht - ist eine Mischung aus flackern und nicht zeichnen es ist das gleiche Bild wie bei meinem vorherigen Post, nur das es noch flackert!

Liebe Grüße
loirad

PS.:
Es steht im OnPaint drin - liegt da der Fehler?
@Dalai: Ich möchte eine Gesamtübersicht über den Monat mit To-Do's haben!
@jaenicke: DoubleBuffered ist an (hatte ich schon erwähnt)! Mit dem neuen Erzeugen macht es sich am einfachsten!
Wer Fehler findet darf sie behalten!
  Mit Zitat antworten Zitat