![]() |
|
|
Регистрация | << Правила форума >> | 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; Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#6
|
|||
|
|||
![]() ВОТ ЖЕ ОНО...то что я искал.... псб DJ PhoeniX
![]() позже проверю на старом коде...если возникнут проблемы буду писать сюда же... |