![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Редактор должен работать только с диаграмой классов, что упрощает задание. Нужно создать два Класса : "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 Последний раз редактировалось Admin, 07.05.2011 в 17:14. |
|
#2
|
||||
|
||||
|
Не созданы экземпляры класса.
|
|
#3
|
|||
|
|||
|
Код:
var Form1: TForm1; DClass: Array [1..10] of TClass; // <-- вот как бы...если я не ошибаюсь i: integer; procedure Redisigner; Последний раз редактировалось lmikle, 08.05.2011 в 21:01. |
|
#5
|
||||
|
||||
|
Перед первым обращением к переменной типа "класс", её надо инициализировать.
Вставь где-нибудь Код:
DClass[N]:=TClass.Create; |
|
#6
|
|||
|
|||
|
ВОТ ЖЕ ОНО...то что я искал.... псб DJ PhoeniX
....позже проверю на старом коде...если возникнут проблемы буду писать сюда же... |