Hallo,
mir stellt sich eine Aufgabe und zwar habe ich ein StringGrid, dass mit Daten aus einer Datenbank gefüllt ist. Nun ist es per Programm möglich, sich über die Spalten eine Sortierreihenfolge zu definieren. Ich erstelle nun eine StringList, wobei jeder String aus dem Stringgrid zusammengesetzt wird, dieser kann je nach Zeile unterschiedliche Spalten haben.
Das sortieren ist ja jetzt nun nicht das Problem, sondern, dass ich einen Index brauche, wo jeder Datensatz vorher im Grid war (für weitere Verarbeitungen).
Gibt es noch andere Möglichkeit als mit Objekten zu arbeiten?
Delphi-Quellcode:
type
TRfolge= class(TObject)
position:integer;
end;
// ...
slist:=TStringList.Create;
// strings zusammensetzen
for zeile:=0 to bis do
begin
s:='';
for spalte:=0 to 3 do // nur für das beispiel, sonst unterschiedliche spalten
s:=s+stringgrid2.Cells[spalte,zeile]; // zu sortierender String
nr:=TRfolge.Create;
nr.position:=zeile; // index merken
slist.AddObject(s,nr);
end;
slist.Sort;
//... weitere Verarbeitung
// objekte freigeben
for zeile:=0 to bis do
(slist.Objects[zeile] as TRfolge).Free;
sList.Free;