Показать сообщение отдельно
  #4  
Старый 15.06.2015, 11:40
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Ну для начала

Код:
type
 TFigura=class
private
   FName : String;
public
   procedure DrawTo(Canvas:TCanvas);//процедура рисования
                                           virtual;//сама процедура будет определена в наследниках
   procedure ToListItem(Item:TListItem);virtual;// процедура записи своих параметров в элемент TListView
   function ToString:String;virtual;
   function Verirification:Boolean;Virtual;//проверка правильности
   function Perimetr:Double;virtual; //периметр фигуры
   constructor Create(AName:String);//конструктор;
   property Name:String read FName;
end;

procedure TFigura.DrawTo(Canvas:TCanvas);
begin
end;
procedure TFigura.ToListItem(Item:TListItem);
begin
  Item.Caption:=Name;
  Item.SubItems.Clear;
  Item.SubItems.Add('Фигура');
  if Verirification then
    Item.SubItems.Add('может быть такой!')
  else
    Item.SubItems.Add('Не может быть');
  Item.SubItems.Add(Format('%F',[Perimetr]));
end;
function TFigura.ToString:String;
begin
  Result:=Name + '  Фигура  ';
  if Verirification then
    Result:=Result+'может быть такой!'
  else
    Result:=Result+'Не может быть';
  Result:=Result+Format('%F',[Perimetr]);
end;
function TFigura.Verirification:Boolean;
begin
  Result:=true;
end;
function TFigura.Perimetr:Double;
begin
  Result:=0;
end;
constructor TFigura.Create(AName:String);
begin
  inherited;
  FName:=AName;
end;

TFigurs = Array of TFigura;
и создать процедурки типа
Код:
procedure DrawAllTo(Canvas:TCanvas;A:TFigurs);
var i:Integer;
begin
  for I:=low(A) to high(A) do
    A[i].DrawTo(Canvas);
end;
procedure FigursToStrings(List:TStings;A:TFigurs);
var i:Integer;
begin
  List.Clear;
  for I:=low(A) to high(A) do
    List.Add(A[i].ToString);
end;

procedure FigursToListView(List:TListView;A:TFigurs);
begin
//напиши сам
end;

Кроме того, нужны будут процедуры добавления фигур в массив, удаления из него, поиск(По имени)
Ответить с цитированием