IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> StringGrid сортировка, по строкам
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Влад

Репутация: -  0  +


var
Form1: TForm1;
i,j:integer;
implementation

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
with StringGrid1 do
for i:=0 to ColCount -1 do
for j:=0 to RowCount -1 do
cells[i,j]:=inttostr(random(50)+1);
end;

procedure TForm1.Button2Click(Sender: TObject);
var temp:integer;
begin
with StringGrid1 do
for i:=1 to ColCount -1 do
for j:=0 to RowCount -1 do
if StrToInt(cells[i,j])>StrToInt(cells[i-1,j]) then
begin
temp:=StrToInt(cells[i-1,j]);
cells[i-1,j]:=cells[i,j];
cells[i,j]:=IntToStr(temp);
end;
end;

begin
randomize;
end.



Код для стрингрида и двух кнопок. Первая формирует, вторая сортирует по убыванию

Помогите плиз:
1.сортировка происходит с шагом на одну клетку, как сделать что бы они выстроились в нужную последовательность после 1 нажатия?
2. нужно сосчитать сумму чисел в строке и выстроить строки по возрастанию этого самого числа
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;

type
TForm2 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

type
a=array [1..5] of integer;
m=array [1..5] of a;
const
n=5;

var
Form2: TForm2;
mas:m;

implementation

{$R *.dfm}

procedure refreshtable;
var
i,j:byte;
begin
for I := 1 to n do
for j := 1 to n do
form2.StringGrid1.Cells[j-1,i-1]:=inttostr(mas[i,j]); // тут укажи свою форму
end;

procedure TForm2.Button1Click(Sender: TObject);
var
i,j:byte;
s:integer;
begin
for I := 1 to n do begin
s:=0;
for j := 1 to n do begin
mas[i,j]:=Random(100);
s:=s+mas[i,j];
end;
StringGrid1.Cells[5,i-1]:=inttostr(s);
end;
refreshtable;
end;


procedure TForm2.Button2Click(Sender: TObject);
var
i,j:byte;
s:string;
k:a;
begin
for I := 1 to 4 do
for j := 1 to n-i do
if (strtoint(StringGrid1.Cells[5,j]) < strtoint(stringGrid1.Cells[5,j-1])) then begin
k:=mas[j];
mas[j]:=mas[j+1];
mas[j+1]:=k;
s:=StringGrid1.Cells[5,j-1];
StringGrid1.Cells[5,j-1]:=StringGrid1.Cells[5,j];
StringGrid1.Cells[5,j]:=s;
end;
refreshtable;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
Randomize;
end;

end.
На форме стринггрид и 2 кнопки.
Еще надо отсорировать сами строки...

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 16:58
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name