Steuerelement am Neuzeichnen hindern |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
Mithilfe folgender Prozedur lässt sich bei jeder Komponente, die direkt oder indirekt von TWinControl abgeleitet wurde, das Neuzeichnen sperren.Ihr muss als erster Parameter die Referenz zu dem entsprechenden Control übergeben werden. Über den zweiten Parameter wird gesteuert, ob das Steuerelement gesperrt (True) oder entsperrt (False) werden soll. Beim Entsperren wird es automatisch neu gezeichnet.
procedure LockWinControl(const WC: TWinControl; ALock: Boolean);
begin
if (not Assigned(WC)) or (WC.Handle = 0) then
exit;
if ALock then
WC.Perform(WM_SETREDRAW, 0, 0)
else
begin
WC.Perform(WM_SETREDRAW, 1, 0);
RedrawWindow(WC.Handle, nil, 0,
RDW_ERASE or RDW_FRAME or RDW_INVALIDATE or RDW_ALLCHILDREN);
end;
end;
Achten Sie bei der Verwendung der Prozedur darauf, die Sperrung/Entsperrung mit einem try-finally-Block zu schützen:
Die Sperrung wirkt sich in diesem Beispiel auch auf alle Komponenten aus, die Groupbox1 als Parent haben.
- Überblick
- Komponenten vom Formular entfernen
- Komponenten zur Laufzeit erzeugen
- Eigenschaften von Komponenten zur Laufzeit ändern
- Zugriffsmethoden auf Komponenten
- Komponente beim Fokussieren farblich hervorheben
- TWinControl beim Mauszeiger ermitteln
- Zugriff auf Komponenten über ihre Namen
- Komponenten speichern/laden
- Einer Komponente den Fokus geben