Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 06.10.2008
Сообщений: 13
1

Создание компоненты сортировки

20.04.2009, 13:07. Показов 774. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Надо сделать компоненту на сортировку даных в стрингриде. У меня есть кусок кода с нужной мне сортировкой - возможно ли его переделать в компоненту, и если да то как?
Код
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2009, 13:07
Ответы с готовыми решениями:

Создание компоненты
Пишу компоненту на основе TImage , шифрующую файлы bmp. unit QImageCode; interface uses ...

Создание компоненты
Хочу создать компоненту на основе PageControl1 чтоб можно было менять цвет PageControl1 и его...

Создание компоненты
люди помогите с решение программы программа написана теперь надо сделать из нее компоненту сам в...

Создание внешней компоненты
Добрый вечер, есть библиотека dll на C#, и нужно как то с ней взаимодействовать в 1С, поискав в...

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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2009, 17:53
Помогаю со студенческими работами здесь

Создание компоненты Delphi
В универе задали сделать компонент на основе bitbutton, который при наведении на него курсора мыши...

Компоненты - динамическое создание
Народ подскажите как создать эти 5 эдитов не на Form1 , а например на TabControl1 на 3 вкладке!!!...

Создание компоненты-дерева
При написании курсовой столкнулся с необходимостью выводить на экран дерево. Пока использую для...

Создание графического редактора! Компоненты.
Доброго времени суток! Нужно создать свой графический редактор. Хотел узнать есть ли какие нибудь...

Динамическое создание серий компоненты Chart
Chart chart1 = new Chart(); for (int i = 0; i &lt; 5; i++) { ...

Создание компоненты для слайд-шоу
Задание: Разработать компонент, отображающий последовательность заданных изображений в формате BMP....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru