Die DBStringGrid-Komponente von TMS verfügt über eine integrierte Methode zur automatischen Größenanpassung von Zeilenhöhen. Ich verstehe die Eigenschafteneinstellungen, die für das Funktionieren der Methode erforderlich sind, und wenn sie aufgerufen werden, funktioniert es gut.Wie erhalten Sie eine Methode, die aufgerufen wird, wenn ein DBGrid angezeigt wird?
Ich möchte die Zeilen meines Rasters automatisch skalieren, wenn das Raster angezeigt wird, und ich kann nicht herausfinden, wo der Methodenaufruf platziert werden soll. Ich dachte, das OnCustomCellDraw -Ereignis der Komponente wäre die richtige Wahl, aber das verursacht nur das Flackern und Speichernutzung verbunden mit einer Endlosschleife (auch wenn grid.doubleBuffering auf True gesetzt ist).
Wo würden Sie vorschlagen, dass ich den Aufruf von AutoSizeRows platziere, wenn ich möchte, dass er immer dann aufgerufen wird, wenn das Raster angezeigt wird?
UPDATE: Kens Antwort ist gut, aber ich finde auch, dass der Aufruf des OnDataChange-Ereignisses der DataSource, wann immer die DB in den Bearbeitungsmodus geht, für meine Zwecke genauso gut ist.
Das Flackern in 'OnCustomCellDraw' verursacht, weil dieses Ereignis ausgelöst wird, wenn die Zelle gezogen werden muss. Es ist also nicht der richtige Ort. – TLama
In dem OnShow-Ereignis des enthaltenden Formulars könnte ein guter Ort sein. –
@Ken, es ist mehr Antwort als ein Kommentar ;-) – TLama