Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Spaltenreihenfolge im DBGrid ändern u. speichern/restauriern (https://www.delphipraxis.net/117929-spaltenreihenfolge-im-dbgrid-aendern-u-speichern-restauriern.html)

nahpets 28. Jul 2008 15:57


Spaltenreihenfolge im DBGrid ändern u. speichern/restauriern
 
Hallo,

in einer kleinen Datenbankapplikation soll der Anwender die Breite und die Reihenfolge der Spalten im DBGrid ändern können.
Zur Laufzeit funktioniert dies.
Nun sollen diese Änderungen in einer INI-Datei oder der Registry gespeichert werden um beim nächsten Programmstart von dort ausgelesen und restauriert zu werden.
Mit der Spaltenbreite gelingt dies.

Schreiben mit:
Delphi-Quellcode:
For i := 0 To dbgUCE.Columns.Count - 1 Do begin
  RegIni.WriteInteger('CONFIG','dbgUCE.Columns[' + IntToStr(i) + '].Width',dbgUCE.Columns[i].Width);
end;
Lesen mit:
Delphi-Quellcode:
For i := 0 To dbgUCE.Columns.Count - 1 Do begin
  dbgUCE.Columns[i].Width := RegIni.ReadInteger('CONFIG','dbgUCE.Columns[' + IntToStr(i) + '].Width',dbgUCE.Columns[i].Width);
end;
Die Reihenfolge bekomme ich nicht gespeichert und restauriert.

Mit dem Attribut Index von Columns.Items[i] funktioniert es nicht, ID ist schreibgeschützt.
Man kann Index zwar einen neuen Wert zuweisen, der dann auch zu einer neuen Position der Spalte führt, aber der Index scheint sich beim Verschieben zur Laufzeit nicht zu ändern, so dass man über den Zugriff auf den Index nicht die aktuelle Position der Spalte im DBGrid erhält, sondern die Position zur Entwicklungszeit.
Eine Zuweisung im Ereignis onColumnMoved führt auch nicht zum gewünschten Ergebnis

Hat jemand eine Idee, mit welchem Attribut des DBGrids bzw. der Columns das zu realisieren ist.

Stephan

Nachteule 29. Jul 2008 07:56

Re: Spaltenreihenfolge im DBGrid ändern u. speichern/restaur
 
ich benutze jvDBGrid von den Jedis. Dieses kann sein Aussehen speichern. Gegebenenfalls dort im SourceCode nachsehen, wie es gemacht wird?

DeddyH 29. Jul 2008 08:01

Re: Spaltenreihenfolge im DBGrid ändern u. speichern/restaur
 
Du müsstest Dir den Feldnamen der Spalte merken und ggf. setzen. Schau doch mal nach TDBGrid.Columns.Fieldname.

sx2008 29. Jul 2008 08:39

Re: Spaltenreihenfolge im DBGrid ändern u. speichern/restaur
 
Wie wäre es mit TDBGrid.Columns.SaveToFile und .ReadFromFile?
Damit wird Position und Breite aller Spalten gespeichert.

nahpets 29. Jul 2008 09:42

Spaltenreihenfolge im DBGrid ändern u. speichern/restaur
 
Zitat:

Zitat von sx2008
Wie wäre es mit TDBGrid.Columns.SaveToFile und .ReadFromFile?
Damit wird Position und Breite aller Spalten gespeichert.

Danke, das reicht mir vollkommen aus.

Stephan


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz