![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() покажите пример объявления объектов
и желательно с коментариями чтоб понять что это такое Последний раз редактировалось TotKtoNado, 09.06.2011 в 19:05. |
#2
|
|||
|
|||
![]() Код:
var MyObject : TMyObject; Какой вопрос - такой ответ ![]() |
#3
|
|||
|
|||
![]() Цитата:
я имею ввиду создавать типы |
#4
|
|||
|
|||
![]() эм... Или уточняйте что значит в вашем понимании объект или вот:
Код:
type TSex = record TGirls = array of TGirl; time: real; condom: boolean; end; |
#5
|
||||
|
||||
![]() Цитата:
Код:
var AObject: TObject; begin AObject:=TObject.Create; ShowMessage(AObject.ClassName); AObject.Free; end; ![]() Пишу программы за еду. __________________ |
#6
|
|||
|
|||
![]() Цитата:
Дык вопрос надо правильно задавать. Ты что спроисл? Как ОБЪЯВИТЬ ОБЪЕКТ. Ну на свой вопрос ты и получил ответ. А по поводу объявления КЛАССА. А что, взять лубую книжку и просто прочитать лень? В ЛЮБОЙ книге есть описание как создавать свои классы. А здесь писать целую лекцию никто не будет. Более того, запусти Дельфи и открой программный код формы - сразу увидишь пример объявления класса. |
#7
|
|||
|
|||
![]() Насколько я понял интересует создание собственного класса и его реализация
![]() Код:
unit uMyObj; interface uses SysUtils; type //Описываем новый класс данных TMyObject = class // TMyObject прямой наследник класса TObject private //Закрытые члены объекта FOneVar: Integer; //По сути оба поля класса являются обычными //переменными. FTwoVar: String; procedure SetOneVar(const Val: Integer);// Процедура для изменения //состояния поля FOneVar procedure SetTwoVar(const Val: String); // Аналогично для второго поля function GetOneVar: Integer; // Функции для контроля состояния полей function GetTwoVar: String; public constructor Create;override;// Унаследованный коструктор базового объекта тобиш TObject destructor Destroy;override; //Унаследованный деструктор базового объекта property OneVar: Integer read GetOneVar write SetOneVar;//А вот это уже свойства доступа к полю экземпляра данного класса property TwoVar: String read GetTwoVar write SetTwoVar default 'Hello, World !!!';//Здесь аналогично свойство доступа но с добавкой значения по умолчанию end; implementation { TMyObject } constructor TMyObject.Create; begin inherited;//Перед любыми действиями необходимо вызвать конструктор родительского класса FOneVar:= 0; end; destructor TMyObject.Destroy; begin FOneVar:= 0; FTwoVar:= ''; inherited;//После выполнения зачистки вызываем деструктор родителя end; function TMyObject.GetOneVar: Integer; begin Result:= FOneVar; end; function TMyObject.GetTwoVar: String; begin Result:= FTwoVar; end; procedure TMyObject.SetOneVar(const Val: Integer); begin if Val <> FOneVar then FOneVar:= Val; end; procedure TMyObject.SetTwoVar(const Val: String); begin if Val <> FTwoVar then FTwoVar:= Val; end; end. Код:
procedure TForm1.Button1Click(Sender: TObject); var MyOb: TMyObject; begin MyObj:= TMyObject;//Создаём наш объект MyObj.OneVar:= 15; MyOb.TwoVar:= Format("Value from MyObj.OneVar = ", [MyObj.OneVar]); MessageDlg(MyObj.TwoVar, mtInformation, [mbOK], 0); end; Последний раз редактировалось bussianko, 10.06.2011 в 01:20. |
#8
|
|||
|
|||
![]() Цитата:
![]() Код:
... TMyObject = class // TMyObject прямой наследник класса TObject ... constructor Create;override;// Унаследованный коструктор базового // ошибочка - у TObject конструктор не виртуальный // надо так constructor Create; ... implementation { TMyObject } ... end. Код:
procedure TForm1.Button1Click(Sender: TObject); var MyOb: TMyObject; begin // и вот сдесь ошибочка MyObj:= TMyObject;//Создаём наш объект // создавать надо вот так MyObj:= TMyObject.Create; MyObj.OneVar:= 15; MyOb.TwoVar:= Format("Value from MyObj.OneVar = ", [MyObj.OneVar]); MessageDlg(MyObj.TwoVar, mtInformation, [mbOK], 0); end; |
#9
|
||||
|
||||
![]() Ну уж тогда доводи начатое до конца
Цитата:
|