Показать сообщение отдельно
  #1  
Старый 07.05.2011, 16:22
Muaz Muaz вне форума
Прохожий
 
Регистрация: 07.05.2011
Сообщения: 4
Репутация: 10
Стрелка UML редактор на Delphi

Редактор должен работать только с диаграмой классов, что упрощает задание. Нужно создать два Класса : "TClass" и "TArrow". прошу помочь разобраться с классами, почему то переменные члены-класса нормально не работают не пойму что не так.
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    BitBtn1: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type
  TClass = class
    PtA,PtB,PtC,PtD: TPoint; //  <--- ПРОБЛЕМНЫЕ ПЕРЕМЕННЫЕ
    str: record name,atr,oper: string; end;
    procedure Paint;
    procedure Size;
    //procedure Delete;
  end;

type
  TArrow = class
  //
  end;

var
  Form1: TForm1;
  DClass: Array [1..10] of TClass;
  i: integer;
  procedure Redisigner;

implementation

{$R *.dfm}

procedure TClass.Size;
begin
  PtA.X:=15;
  PtA.Y:=15;
  PtB.X:=PtA.X+150;
  PtB.Y:=PtA.Y+50;
  PtC.X:=PtA.X;
  PtC.Y:=PtB.Y+50;
  PtD.X:=PtA.X+150;
  PtD.Y:=PtC.Y+50;
end;

procedure TClass.Paint;
begin
  Image1.Canvas.FrameRect(Rect(PtA.X,PtA.Y,PtB.X,PtB.Y));  //вывод 1  прямоугольника
  Image1.Canvas.FrameRect(Rect(PtB.X,PtB.Y,PtC.X,PtC.Y));  //2-го
  Image1.Canvas.FrameRect(Rect(PtC.X,PtC.Y,PtD.X,PtD.Y));  //3-го
  Image1.Canvas.FrameRect(Rect(PtA.X,PtA.Y,PtD.X,PtD.Y));  //обвод
end;

procedure Redisigner;
begin
  DClass[i].Paint;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  i:=i+1;
  Image1.Canvas.Brush.Color:=clBlack;
  DClass[i].Create;
  DClass[i].Size;
  Redisigner;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  i:=0;
end;

end.
Админ: Пользуемся тегами для оформления кода!

планируется езменение размера полей с помощью изменения PtB,PtC,PtD: TPoint
Ответить с цитированием