Hallo zusammen,
ich habe folgende Situation:
In meiner Software greife ich über das ADODataset auf eine Datenbank zu. Über einen DataSource ist ein DBGrid mit dem Dataset verbunden. Die Datenmenge wird mit einer
SQL Anweisung geöffnet und im Grid angezeigt. Innerhalb des Grids lasse ich eine Umsortierung der Spalten zu. Somit ändert sich ggf der Spaltenindex. Wenn ich die Software beende muß ich dann den Index speichern. Das mache ich so:
Delphi-Quellcode:
for i := 0 to PFORM.MyGrid.Columns.Count - 1 do
begin
if Form1.MyGrid.Columns.Items[i].FieldName = tdbe.DataField then // tdbe ist ein DBEdit
begin
MyInifile.WriteInteger(tempstr, 'ColID', Form1.MyGrid.Columns.Items[i].Index);
Break;
end;
end;
Das funktioniert soweit richtig. Jetzt kommt aber der Rest. Wenn ich die Software wieder starte und an meine Datenquelle anknüpfe, will ich anschließend die Spaltenreihenfolge wieder zuweisen. Ich habe es auf dem gleichen Weg wieder versucht, aber da wird dann alles durcheinander gewürfelt.
Ich lade immer alle Felder per
SQL in das Dataset, es kann aber auch sein, dass ich im Grid einige nicht anzeigen lasse. Die Spalte wird dann auf invisible gesetzt:
Form1.MyGrid.Columns.Items[i].Visible:= FALSE
So, hoffe die Infos sind alle vorhanden, die benötigt werden und mir kann schnell geholfen werden.
Gruß, Moony