Сортировка двух столбцов в stringgrid в delphi
У меня есть строковая сетка с 3 столбцами; Year, Value1 & Value2. Я хочу отсортировать столбец по убыванию года (выберите самый маленький год). Если самый маленький год имел более 1 данных (пример: 2000,2000,2000), то мне нужно выбрать, какой из них выше по значению1 соответствует году. То же самое и со значением 3.
Мой вопрос в том,как мне выбрать результат, подобный вложению?
Вход в систему-Аккаунты Google[^]
Что я уже пробовал:
это то, что я попытался отсортировать по одному столбцу:
procedure TForm1.Button1Click(Sender: TObject); var i: Integer; Buffer: TStringList; begin Buffer := TStringList.Create; for i := 0 to StringGrid1.ColCount - 1 do begin Buffer.Assign(StringGrid1.Cols[0]); Buffer.CustomSort(@StringListSortCompare); StringGrid1.Cols[0].Assign(Buffer); end; FreeAndNil(Buffer); end; function StringListSortCompare(List: TStringList; Index1, Index2: Integer): Integer; begin Result := StrToIntDef(List[Index2], 0) - StrToIntDef(List[Index1], 0) end; procedure TForm1.FormCreate(Sender: TObject); var i, j: Integer; begin Randomize; with StringGrid1 do begin ColCount := 3; RowCount := 6; for i := 0 to ColCount - 1 do for j := 0 to RowCount - 1 do //Cells[i, j] := IntToStr(Random(5000)); stringgrid1.Cols[0].Add('Year'); stringgrid1.Cells[0,1]:='2000'; stringgrid1.Cells[0,2]:='2001'; stringgrid1.Cells[0,3]:='2000'; stringgrid1.Cells[0,4]:='2002'; stringgrid1.Cells[0,5]:='2000'; stringgrid1.Cols[1].Add('Pcorr'); stringgrid1.Cells[1,1]:='15.6'; stringgrid1.Cells[1,2]:='15.7'; stringgrid1.Cells[1,3]:='15.9'; stringgrid1.Cells[1,4]:='15.9'; stringgrid1.Cells[1,5]:='15.9'; stringgrid1.Cols[2].Add('DD'); stringgrid1.Cells[2,1]:='7.3'; stringgrid1.Cells[2,2]:='7.2'; stringgrid1.Cells[2,3]:='7.0'; stringgrid1.Cells[2,4]:='7.5'; stringgrid1.Cells[2,5]:='7.6'; end; end;