Jak tymczasowo zatrzymać kontrolę nad malowaniem?
Mamy obiekt kontroli wygranej, który przenosi klientów na inne współrzędne. Problem polega na tym, że gdy jest zbyt wiele dzieci - na przykład 500 kontrolek - kod jest naprawdę wolny. Musi to być spowodowane tym, że każda kontrolka jest przemalowywana za każdym razem, gdy ustawiam właściwość Left i Top. Więc chcę powiedzieć, że obiekt WinControl przestaje być odmalowywany, a po przeniesieniu wszystkich obiektów do ich nowych pozycji, może być ponownie pomalowany (Coś jakBeginUpdate
dla obiektów notatek i list). Jak mogę to zrobić? Oto kod przenoszenia obiektów; to dość proste:
for I := 0 to Length(Objects) - 1 do begin
with Objects[I].Client do begin
Left := Left + DX;
Top := Top + DY;
end;
end;