Announcement

Collapse
No announcement yet.

"Flackern" bei Anzeige in DBCtrlGrid

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • "Flackern" bei Anzeige in DBCtrlGrid

    Hallo!

    Ich habe in einem DBCtrlGrid-Panel eine Gruppe von TDBCheckBoxes, deren Anzahl je nach angezeigten Datensatz variiert. Dazu habe ich bei dem Ereignis OnPaintPanel die entsprechenden Checkboxes gesperrt oder angezeigt.
    Wird nun in einem Datensatz etwas geändert und ein Post (mit Springen zur nächsten Zeile) ausgeführt, wird das Grid diverse Male aufgebaut Es flackert dabei ganz fürchterlich und zwischenzeitlich werden ALLE Checkboxes in den Panels angezeigt.
    Beim TDBGrid gibt es die Methoden BeginUpdate und EndUpdate, um den Bildschirm nach der letzten Änderung aufzubauen. Gibt es beim TDBCtrlGrid etwas ähnliches, oder muss ich die Zuweisung der gültigen Checkboxes an einer anderen Stelle ausführen?
    Hoffe doch, dass mir jemand helfen kann...

    Gruß, Heike!

  • #2
    Hallo,

    ein TDBCtrlGrid stellt über die Eigenschaft <b>Handle</b> das Fensterhandle zur Verfügung. Somit könnte man versuchen, das Update des Fensterinhalts über den Aufruf der API-Funktion <b>LockWindowUpdate</b> zu sperren. Beim zweiten Aufruf mit dem Fensterhandle "0" wird die Sperre entfernt und das Fenster und alle Childfenster erhalten eine WM_PAINT-Botschaft, damit sich diese neu darstellen:
    <pre>
    LockWindowUpdate(DBCtrlGrid1.Handle);
    ...
    LockWindowUpdate(0);
    </pre&gt

    Comment


    • #3
      Sieht nun wesentlich besser aus!!!

      Danke

      Comment


      • #4
        Es gibt noch eine andere Möglichkeit:

        Bevor die Änderung durchgeführt wird, einfach folgendes:
        <pre>
        table1.DisableControls;

        table1.edit;
        ...
        table1.post;

        table1.EnableControls;
        </pre>
        Damit werden dann "Neuzeichner" aller verbundenen Controls unterbunden.
        cu
        Tim

        Comment

        Working...
        X