Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.10;
Скачать: CL | DM;

Вниз

Сортировка таблицы stringgrid   Найти похожие ветки 

 
БурЖуй ©   (2003-01-29 23:43) [0]

Господа! Пишу:
min:=1;
for p:=1 to stringgrid1.RowCount do begin
for o:=p to stringgrid1.RowCount do
begin
if stringgrid1.Cells[i,min]>stringgrid1.Cells[i,o] then begin
m:=min;
stringgrid1.Rows[m].Move(m,o);
min:=o;
end;
end;
Когда вызываю stringgrid1.Rows[m].Move говорит "Cannot insert or delete rows from grid"
В чём трабл?
Заранее спасибо!


 
BLooDMaN ©   (2003-01-29 23:46) [1]

может ты имел ввиду вот это:
min:=1;
for p:=1 to stringgrid1.RowCount do begin
for o:=p to stringgrid1. COLCOUNT do
begin
if stringgrid1.Cells[i,min]>stringgrid1.Cells[i,o] then begin
m:=min;
stringgrid1.Rows[m].Move(m,o);
min:=o;
end;
end;


 
БурЖуй ©   (2003-01-29 23:57) [2]

нет
Объясняю - i это колонка по какой я сортирую таблицу.
А метод которым я сортирую, если не ошиюаюсь называется пузырьковый.... протсо мне не понятно почему не работает встроеная функция stringgrid1.Rows[m].Move(m,o);.... и не понятно почемув параметрах нужно ставить текущий и следующее значение индекса, ведь текущее уже задано:.Rows[m].


 
uw ©   (2003-01-30 01:23) [3]

Cells индексируются с нуля.


 
А   (2003-01-30 05:01) [4]

также Rows & Cols! Все с нуля и до Count-1.


 
MBo ©   (2003-01-30 06:34) [5]

procedure SGExchangeRows(SG:TStringGrid; Row1,Row2:Integer);
var TempString: String;
begin
if (Row1 in [0..SG.RowCount-1]) and (Row2 in [0..SG.RowCount-1]) then begin
TempString:=SG.Rows[Row1].Text;
SG.Rows[Row1].Assign(SG.Rows[Row2]);
SG.Rows[Row2].Text:=TempString;
end;
end;

//сортировка по значениям колонки, заголовок которой был нажат
procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Var ACol,ARow,i,j:Integer;
begin
with StringGrid1 do begin
MouseToCell(X,Y,ACol,ARow);
if (ARow=0) and (ACol>=FixedCols) then
for i:=FixedRows to RowCount-2 do
for j:=i+1 to RowCount-1 do
if Strtoint(Cells[ACol,i])>strtoint(Cells[ACol,j]) then
//в таблице были целые числа
SGExchangeRows(StringGrid1,i,j);
end;
end;



Страницы: 1 вся ветка

Текущий архив: 2003.02.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
3-28651
Sterh
2003-01-22 18:16
2003.02.10
Net db


1-28743
Checist [root]
2003-02-01 02:30
2003.02.10
Запись в файл


14-29020
kostya2000
2003-01-23 18:14
2003.02.10
Я на Мастаке скоро сутками буду просиживать!!!!!


1-28900
Fill
2003-01-29 20:43
2003.02.10
mainmenu


1-28695
Lexa
2003-01-31 12:54
2003.02.10
Утечка памяти