0 / 0 / 0
Регистрация: 06.10.2008
Сообщений: 13
|
|
1 | |
Создание компоненты сортировки20.04.2009, 13:07. Показов 774. Ответов 1
Метки нет (Все метки)
Надо сделать компоненту на сортировку даных в стрингриде. У меня есть кусок кода с нужной мне сортировкой - возможно ли его переделать в компоненту, и если да то как?
Код
procedure TPagesDlg.N6Click(Sender: TObject); var a,i:integer; s:string; begin for i:=1 to n-1 do if (stringgrid1.cells[0,i]='') and (stringgrid1.cells[1,i]='') and(stringgrid1.cells[2,i]='') and(stringgrid1.cells[3,i]='') then begin s:=stringgrid1.cells[0,i]; stringgrid1.cells[0,i]:=stringgrid1.cells[0,i+1]; stringgrid1.cells[0,i+1]:=s; s:=stringgrid1.cells[1,i]; stringgrid1.cells[1,i]:=stringgrid1.cells[1,i+1]; stringgrid1.cells[1,i+1]:=s; s:=stringgrid1.cells[2,i]; stringgrid1.cells[2,i]:=stringgrid1.cells[2,i+1]; stringgrid1.cells[2,i+1]:=s; s:=stringgrid1.cells[3,i]; stringgrid1.cells[3,i]:=stringgrid1.cells[3,i+1]; stringgrid1.cells[3,i+1]:=s; n:=N-1; end; a:=1; while a<>0 do begin a:=0; for i:=1 to n-1 do if stringgrid1.cells[0,i]> stringgrid1.cells[0,i+1] then begin s:=stringgrid1.cells[0,i]; stringgrid1.cells[0,i]:=stringgrid1.cells[0,i+1]; stringgrid1.cells[0,i+1]:=s; s:=stringgrid1.cells[1,i]; stringgrid1.cells[1,i]:=stringgrid1.cells[1,i+1]; stringgrid1.cells[1,i+1]:=s; s:=stringgrid1.cells[2,i]; stringgrid1.cells[2,i]:=stringgrid1.cells[2,i+1]; stringgrid1.cells[2,i+1]:=s; s:=stringgrid1.cells[3,i]; stringgrid1.cells[3,i]:=stringgrid1.cells[3,i+1]; stringgrid1.cells[3,i+1]:=s; a:=a+1; end; end; newcombobox; newedit(combobox1); end;
0
|
20.04.2009, 13:07 | |
Ответы с готовыми решениями:
1
Создание компоненты Создание компоненты Создание компоненты Создание внешней компоненты |
0 / 0 / 0
Регистрация: 06.10.2008
Сообщений: 13
|
|
25.04.2009, 17:53 [ТС] | 2 |
Вот вроде сделал визуальную компоненту с сортировкой, но когда я вызываю процедуру сортировки ничего не происходит - правильно ли я сделал компоненту?
Код
unit StringGrid1; interface uses SysUtils, Classes, Controls, Grids; type TStringGrid1 = class(TStringGrid) private a,n:integer; s:string; { Private declarations } protected { Protected declarations } public procedure sort; { Public declarations } published property Fa:integer read a write a default 1; property Fn:integer read n write n default 1; property Fi:integer read i write i default 1; property Fs:string read s; { Published declarations } end; procedure Register; implementation procedure Register; begin RegisterComponents('WR', [TStringGrid1]); end; procedure TStringGrid1.sort; var i:integer; begin for i:=1 to n-1 do if (cells[0,i]='') and (cells[1,i]='') and(cells[2,i]='') and(cells[3,i]='') then begin s:=cells[0,i]; cells[0,i]:=cells[0,i+1]; cells[0,i+1]:=s; s:=cells[1,i]; cells[1,i]:=cells[1,i+1]; cells[1,i+1]:=s; s:=cells[2,i]; cells[2,i]:=cells[2,i+1]; cells[2,i+1]:=s; s:=cells[3,i]; cells[3,i]:=cells[3,i+1]; cells[3,i+1]:=s; n:=N-1; end; a:=1; while a<>0 do begin a:=0; for i:=1 to n-1 do if cells[0,i]> cells[0,i+1] then begin s:=cells[0,i]; cells[0,i]:=cells[0,i+1]; cells[0,i+1]:=s; s:=cells[1,i]; cells[1,i]:=cells[1,i+1]; cells[1,i+1]:=s; s:=cells[2,i]; cells[2,i]:=cells[2,i+1]; cells[2,i+1]:=s; s:=cells[3,i]; cells[3,i]:=cells[3,i+1]; cells[3,i+1]:=s; a:=a+1; end; end; end; end.
0
|
25.04.2009, 17:53 | |
25.04.2009, 17:53 | |
Помогаю со студенческими работами здесь
2
Создание компоненты Delphi Компоненты - динамическое создание Создание компоненты-дерева Создание графического редактора! Компоненты. Динамическое создание серий компоненты Chart Создание компоненты для слайд-шоу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |