![]() |
Delphi-Version: 2005
Neuzeichnen eines Steuerelements verhindern
Folgende Frage: kann man temporär das Neuzeichnen eines Controls unterbinden? Konkret geht es um ein StringGrid, das auf einem Formular liegt. Während der Gridinhalt überarbeitet wird (es werden alle Zeilen analysiert und überflüssige gelöscht), soll das Steuerelement nicht ständig neu gezeichnet werden, sondern erst, nachdem die Überarbeitung vollständig abgeschlossen wurde.
Wie geht das? Gibt es da Methoden a la "DisableRepaint" und "EnableRepaint" oder so ähnlich? |
AW: Neuzeichnen eines Steuerelements verhindern
BeginUpdate/EndUpdate
|
AW: Neuzeichnen eines Steuerelements verhindern
Zitat:
|
AW: Neuzeichnen eines Steuerelements verhindern
|
AW: Neuzeichnen eines Steuerelements verhindern
In der StringList-Klasse
Je nach dem was du einfügst also für die Cols oder Rows setzen:
Delphi-Quellcode:
function LockGrid( Grid: TStringGrid);
var i: Integer; begin for i := 0 to Grid.ColCount -1 do begin Grid.Cols[i].BeginUpdate; end; end; function UnLockGrid( Grid: TStringGrid); var i: Integer; begin for i := 0 to Grid.ColCount -1 do begin Grid.Cols[i].EndUpdate; end; end; |
AW: Neuzeichnen eines Steuerelements verhindern
Zitat:
Delphi-Quellcode:
Mit diesem Aufruf sollte das ganze eigentlich für jedes Control unter D7 funktionieren, oder? Gleich mal ausprobieren. Ansonsten versuche ich es mit deinem Ansatz, vielen Dank!
SendMessage(Handle,WM_SETREDRAW,integer(False),0);
EDIT: Jawollja, mittels Windows-Message WM_SETREDRAW erfolgreich an einem TMemo ausprobiert :) |
AW: Neuzeichnen eines Steuerelements verhindern
Da gibt es sogar eine schöne Procedure dazu:
![]() |
AW: Neuzeichnen eines Steuerelements verhindern
Super, danke! Werde ich so in unser Projekt übernehmen :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz