Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2012, 13:18   #1
Haisenberg
Новичок
Джуниор
 
Регистрация: 22.02.2012
Сообщений: 1
Восклицание Массивы в Delphi

Есть программа, нужно в тех строках, где совпадают поля "Имя" и "Адрес", удалить одну из этих строк (всю строку). Кто знает в чём ошибка? НАпишите пожалуйста, буду благодарен за помощь.

не работает процедура удаления строки при нажатии на кнопку "Пуск"

Код:
unit Unit9;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

type
 zap=record                   // объявление  записи
      fio,adr         :string[20];
      data:string;
     end;
var                             
 MZap:array[1..9] of zap;    // объявление  массива записей

procedure TForm1.Button1Click(Sender: TObject);
var
 i:integer;  p:integer;
 vper:zap;
 begin
  for i:=1 to 9 do
   with StringGrid1,MZap[i] do
    begin
    fio:=Cells[1,i];
    adr:=Cells[2,i];
    data:=Cells[3,i];
     end;
      for i:=1 to 9 do
     if MZap[i].fio=MZap[i+1].fio  then
 p:=i;
  for i:=1 to p do           // заполнение ячеек StringGrid1 полями массива записей
   with StringGrid1,MZap[i] do
    begin
    Cells[1,i]:=fio;
    Cells[2,i]:=adr;
    Cells[3,i]:=data;
   with StringGrid1,MZap[i] do
    Cells[1,i]:=fio;
    Cells[2,i]:=adr;
    Cells[3,i]:=data;
    end;
 end;


procedure TForm1.Button2Click(Sender: TObject);
begin
Close
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 i:integer;
begin
  with StringGrid1 do
 begin                            // занесение информации в ячейки StringGrid1
  Cells[0,0]:='№пп';
  Cells[1,0]:='Фамилия,инициалы';
  Cells[2,0]:='Домашний адрес';
  Cells[3,0]:='Дата постановки на учёт';
  for i:=1 to 9 do
   Cells[0,i]:=IntToStr(i);
  Cells[1,1]:='Первый П.П.'; Cells[2,1]:='Ул.Ареновская.39'; Cells[3,1]:='13 сентября'; //Cells[4,1]:='3';
  Cells[1,2]:='Первый П.П.'; Cells[2,2]:='Ул.Ареновская.39'; Cells[3,2]:='3 сентября';// Cells[4,2]:='4';
  Cells[1,3]:='Третий Т.Т.'; Cells[2,3]:='Ул.Награндская.1'; Cells[3,3]:='4 сентября'; //Cells[4,3]:='4';
  Cells[1,4]:='Четвертый Ч.Ч.'; Cells[2,4]:='Ул.Лордеронская.45'; Cells[3,4]:='6 марта';// Cells[4,4]:='4';
  Cells[1,5]:='Пятый П.П.'; Cells[2,5]:='Ул.Троянская.2'; Cells[3,5]:='5 апреля';// Cells[4,5]:='5';
  Cells[1,6]:='Шестой Ш.Ш.'; Cells[2,6]:='Ул.Даларанская.6'; Cells[3,6]:='3 августа'; //Cells[4,6]:='4';
  Cells[1,7]:='Седьмой С.С.'; Cells[2,7]:='Ул.Доблестная.7'; Cells[3,7]:='5 июня';// Cells[4,7]:='4';
  Cells[1,8]:='Восьмой В.В.'; Cells[2,8]:='Ул.Штормградская.14'; Cells[3,8]:='19 января'; //Cells[4,8]:='5';
  Cells[1,9]:='Девятый Д.Д.'; Cells[2,9]:='Ул.Острогорская.8'; Cells[3,9]:='21 декабря'; //Cells[4,9]:='5';
  for i:=1 to 9 do
   with MZap[i] do
    begin             // формирование полей массива записей
    fio:=Cells[1,i];
    adr:=Cells[2,i];
    data:=Cells[3,i];
   //   srbal:=(mat+fiz+soch)/3;                    // вычисление значения ср. балла
    //Cells[5,i]:=FloatToStrF(srbal,ffFixed,5,2);  // вывод значения ср.балла
    end;                                                              // в последнюю колонку StringGrid1
 end;
end;


procedure TForm1.StringGrid1Click(Sender: TObject);
begin

end;

end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 22.02.2012 в 14:07.
Haisenberg вне форума Ответить с цитированием
Старый 22.02.2012, 13:59   #2
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от Haisenberg Посмотреть сообщение
Есть программа, нужно в тех строках, где совпадают поля "Имя" и "Адрес", удалить одну из этих строк (всю строку). Кто знает в чём ошибка? НАпишите пожалуйста, буду благодарен за помощь.

не работает процедура удаления строки при нажатии на кнопку "Пуск"
unit Unit9;

interface

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

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

var
Form1: TForm1;

implementation

{$R *.dfm}

type
zap=record // объявление записи
fio,adr :string[20];
data:string;
end;
var
MZap:array[1..9] of zap; // объявление массива записей

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer; p:integer;
vper:zap;
begin
for i:=1 to 9 do
with StringGrid1,MZap[i] do
begin
fio:=Cells[1,i];
adr:=Cells[2,i];
data:=Cells[3,i];
end;
for i:=1 to 9 do
if MZap[i].fio=MZap[i+1].fio then
p:=i;
for i:=1 to p do // заполнение ячеек StringGrid1 полями массива записей
with StringGrid1,MZap[i] do
begin
Cells[1,i]:=fio;
Cells[2,i]:=adr;
Cells[3,i]:=data;
with StringGrid1,MZap[i] do
Cells[1,i]:=fio;
Cells[2,i]:=adr;
Cells[3,i]:=data;
end;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
Close
end;

procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
with StringGrid1 do
begin // занесение информации в ячейки StringGrid1
Cells[0,0]:='№пп';
Cells[1,0]:='Фамилия,инициалы';
Cells[2,0]:='Домашний адрес';
Cells[3,0]:='Дата постановки на учёт';
for i:=1 to 9 do
Cells[0,i]:=IntToStr(i);
Cells[1,1]:='Первый П.П.'; Cells[2,1]:='Ул.Ареновская.39'; Cells[3,1]:='13 сентября'; //Cells[4,1]:='3';
Cells[1,2]:='Первый П.П.'; Cells[2,2]:='Ул.Ареновская.39'; Cells[3,2]:='3 сентября';// Cells[4,2]:='4';
Cells[1,3]:='Третий Т.Т.'; Cells[2,3]:='Ул.Награндская.1'; Cells[3,3]:='4 сентября'; //Cells[4,3]:='4';
Cells[1,4]:='Четвертый Ч.Ч.'; Cells[2,4]:='Ул.Лордеронская.45'; Cells[3,4]:='6 марта';// Cells[4,4]:='4';
Cells[1,5]:='Пятый П.П.'; Cells[2,5]:='Ул.Троянская.2'; Cells[3,5]:='5 апреля';// Cells[4,5]:='5';
Cells[1,6]:='Шестой Ш.Ш.'; Cells[2,6]:='Ул.Даларанская.6'; Cells[3,6]:='3 августа'; //Cells[4,6]:='4';
Cells[1,7]:='Седьмой С.С.'; Cells[2,7]:='Ул.Доблестная.7'; Cells[3,7]:='5 июня';// Cells[4,7]:='4';
Cells[1,8]:='Восьмой В.В.'; Cells[2,8]:='Ул.Штормградская.14'; Cells[3,8]:='19 января'; //Cells[4,8]:='5';
Cells[1,9]:='Девятый Д.Д.'; Cells[2,9]:='Ул.Острогорская.8'; Cells[3,9]:='21 декабря'; //Cells[4,9]:='5';
for i:=1 to 9 do
with MZap[i] do
begin // формирование полей массива записей
fio:=Cells[1,i];
adr:=Cells[2,i];
data:=Cells[3,i];
// srbal:=(mat+fiz+soch)/3; // вычисление значения ср. балла
//Cells[5,i]:=FloatToStrF(srbal,ffFixed,5,2); // вывод значения ср.балла
end; // в последнюю колонку StringGrid1
end;
end;


procedure TForm1.StringGrid1Click(Sender: TObject);
begin

end;

end.


Код:
Function DeleteRow(table:TStringGrid;row:integer):integer;
var y,x:integer;
begin
  result:=0;
  for y:=row+1 to table.RowCount-1 do
  for x:=0 to table.Colcount-1 do begin
  table.Cells[x,y-1]:=table.Cells[x,y];
  end;
  table.RowCount:=table.RowCount-1;
  result:=table.RowCount;
end;
Код:
for i:=1 to 9 do
if form1.StringGrid1.Cells[1,i]=form1.StringGrid1.Cells[1,i+1] then DeleteRow(form1.StringGrid1,i);
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi массивы zzzarazzza Помощь студентам 8 29.06.2011 18:17
Delphi(массивы) Mishqa Помощь студентам 3 18.04.2010 13:41
Массивы (Delphi) 777UFO777 Помощь студентам 4 19.01.2010 16:51
Delphi - массивы dForm Помощь студентам 2 30.11.2009 17:57