
07.05.2011, 16:22
|
Прохожий
|
|
Регистрация: 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
|