Autor Beitrag
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: So 06.07.03 15:35 
Hallo ihr.

Ich brauche für mein Programm einige Anregungen, wie ich folgendes realisieren kann:

Es geht um ein StringGrid, welches 3 Spalten beinhaltet (Punkte, Vorname, Name). Nun will ich nach Punkten sortieren und gleichzeitig die dazugehörigen Zellen der anderen Spalten beibehalten (es geht um eine Punktetabelle für ein Toto-Tool). Ich weiß, daß ich einen Algorithmus nehmen muß, nur leider habe ich damit noch nie gearbeitet und steige auch durch das, was ich bisher gefunden habe, nicht sonderlich durch. Daher bin ich irgendwie mal wieder auf eure Hilfe angewiesen. ;-) Ich verlange nicht den kompletten Code und bin auch lernfähig; einige Ansätze wären schon sehr hilfreich. :-)

_________________
Hasta La Victoria Siempre
Moritz M.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1672



BeitragVerfasst: So 06.07.03 15:57 
Das ganze geht mit CustomSortProc, und wie du das machst findest di mal wieder im schönen SwissDelphiCenter:
swissdelphicenter.ch...showcode.php?id=1103
Da geht es zwar um ListViews, dürfte aber Übertragbar sein.
Terra23 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Mo 07.07.03 13:34 
Danke für den Hinweis. Leider ist diese Möglichkeit ein wenig kompliziert zu sein und irgendwie auch nicht gerade glücklich. Kannst du mir vielleicht anderweitig behilflich sein?

_________________
Hasta La Victoria Siempre
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Mo 07.07.03 16:59 
hallo terra!

versuch es mal mit 'insertion-sort':

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TForm1.sortieren1Click(Sender: TObject);
var
  key: TDateTime;
  i, j, aRow: integer;
  TempRows: TStrings;
begin
  TempRows:= TStringList.Create;
  for aRow:= 2 to ZugGrid.RowCount-1 do begin
    Label1.Caption:= 'SatzNr: ' + IntToStr(aRow);
    Label1.UpDate;
    key:= StrToDate(ZugGrid.Cells[3,aRow]);
    i:= aRow -1;
    while (i > 0and (StrToDate(ZugGrid.Cells[3,i]) > key) do begin
      for j:= 0 to ZugGrid.ColCount-1 do
        TempRows.Add(ZugGrid.Cells[j,i+1]);
      ZugGrid.Rows[i+1]:= ZugGrid.Rows[i];
      ZugGrid.Rows[i]:= TempRows;
      TempRows.Clear;
      dec(i);
    end;
  end;
  TempRows.Free;
end;


key ist der wert, nach dem das grid sortiert wird - in diesem fall nach einem datum. du brauchst es nur an deine bedürfnisse anzupassen.

mfg, stefan