Самоучитель по Delphi 7 для профессионалов


Пример использования списка указателей - часть 2


begin

Pixl := Iteml;

Pix2 := Item2;

Result := Pixl.FX — Pix2.FX;

  end;

procedure TMainForm.FormCreate(Sender: TObject);

 begin

PixList := TList.Create;

PixNum := 1; {Счетчик точек}

Canvas.Pen.Color := PixColor; (Цвет точки}

Canvas.Pen.Width := 3; {Размер точки}

Canvas.Brush.Color := Color; (Цвет фона текста равен цвету формы}

 end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);

 begin

PixList.Free;

  end;

procedure TMainForm.FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer); 

begin

PixList.Add(TMyPixel.Create(X, Y, PixNum));

Inc(PixNum); 

end;

procedure TMainForm.ListBtnClick(Sender: TObject);

var i: Integer;

begin

with PixList do

for i := 0 to Count — 1 do

begin

CurPixel := Items[i]; CurPixel.SetPixel;

end; end;

procedure TMainForm.ClearBtnClick(Sender: TObject);

 begin

Canvas.FillRect(Rect(0, 0, Width, Height));

  end;

procedure TMainForm.DelBtnClick(Sender: TObject); 

begin

PixList.Clear;

PixNum := 1;

  end;

procedure TMainForm.SortBtnClick(Sender: TObject);

var i: Integer;

begin

PixList.Sort(PixCompare);

with PixList do

for i := 0 to Count — 1 do TMyPixel(Items[i]).FText := i + 1; 

end;

end.

Класс TMyPixel обеспечивает хранение координат точки и ее порядковый номер в серии. Эти параметры передаются в конструктор класса. Метод setPixel обеспечивает отрисовку точки на канве формы (см. гл. 10).

Экземпляр класса создается для каждой новой точки при щелчке кнопкой мыши в методе-обработчике FormMouseDown. Здесь же указатель на новый объект сохраняется в создаваемом при помощи метода Add элементе списка PixList. Таким образом, программа "запоминает" расположение и порядок следования точек.

Метод-обработчик ListBtnClick обеспечивает отображение точек. Для этого в цикле текущий указатель списка передается в переменную объектного типа curPixel, т. е. в этой переменной по очереди "побывают" все созданные объекты, указатели на которые хранятся в списке.




Начало  Назад  Вперед



Книжный магазин