Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.12;
Скачать: CL | DM;

Вниз

ООП - Как создать собственный объект для формы?   Найти похожие ветки 

 
Doctor DOOM   (2006-01-26 07:47) [0]

Добрый день дорогие товарищи. Я новенький. Разбираюсь.

Итак задача: Требуется создать объект, который будет включать в себя  TImage, TEdit, TLabel, TButton; Для экспериментов сделал пока только TLabel. Остальное буду делать по аналогии. Таких объектов может быть заранее неизвестное множество.

Вопрос: как сделать так, что бы мой объект стал, виден на форме:

До чего дочитался, и что делаю:

Главная форма:

type
 TFMain = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
 public
  lab: TAutoMobile;
 end;
var FMain: TFMain;

procedure TFMain.FormCreate(Sender: TObject);
begin
  Auto:=TAutoMobile.Create(fmain); // Auto как я понимаю и есть объект класса TAutoMobile ??? Родителем данного объекта будет моя форма FMain?
end;

Здесь я не совсем еще разобрался, в чем разница между.

TAutoMobile.Create(fmain)

и

TAutoMobile.Create(self)

Кто может, поясните доходчиво, пожалуйста. А то в книжках, статьях, как-то все расплывчато, понять ни как не могу. Лучше на пальцах [с примером]. Извиняюсь за даунизм.

Далее в отдельном Unit создаю класс, где описываю все, что данный объект должен уметь делать а также все его свойства и методы.

     TAutoMobile=class(TCustomControl)
     LabelDriver : TLabel;
     public
     constructor Create(AOwner:TComponent); virtual;
     end;

implementation

constructor TAutoMobile.Create(AOwner:TComponent);
begin
  inherited Create(AOwner);
  LabelDriver:=TLabel.Create(Self);
  LabelDriver.Caption  :="123";
  LabelDriver.Parent   :=self;// вот тут как раз и вопрос. Почему вылетает ошибка?
// либо как правильно сделать, так что бы объект стал, виден на форме? (FMain).
end;


А может, есть на много проще вариант решения данного вопрос.


 
beglec ©   (2006-01-26 07:49) [1]

корректировка
lab=Auto


 
MBo ©   (2006-01-26 08:10) [2]

Обрати внимание на фреймы (TFrame)


 
beglec ©   (2006-01-26 08:46) [3]

уже. Прикольная штука.


 
beglec ©   (2006-01-26 08:46) [4]

спасибо доктор доом - твой вопрос помог самому разобраться что к чему :)


 
Сайбель Алексей ©   (2006-01-26 09:46) [5]

Если это просто TImage, TEdit, TLabel, TButton посмотри в сторону Templates (Component -> Create Component Template...)


 
Плохиш ©   (2006-01-26 11:56) [6]


> Здесь я не совсем еще разобрался, в чем разница между.
>
> TAutoMobile.Create(fmain)

Все созданные таким способом объекты будут принадлежать конкретному экземпляру формы или никому. Этот способ является 100% созданием глючных (неработоспособных) программ, советую забыть его как страшный сон.

> TAutoMobile.Create(self)

Созданный объект принадлежит тому экземпляру формы, в для которого он и создавался.
Также имеется свойство Parent, которое указывает объект, отвечающий за отображение, создаваемого.



Страницы: 1 вся ветка

Текущий архив: 2006.02.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.052 c
15-1137696182
yuril
2006-01-19 21:43
2006.02.12
Требуется программист


11-1119419512
midas2k5
2005-06-22 09:51
2006.02.12
StatusBar


2-1138083711
Mike48
2006-01-24 09:21
2006.02.12
Подскажите литературу......


2-1138090132
Vitekkk
2006-01-24 11:08
2006.02.12
Определить систему


6-1130929111
oleggar
2005-11-02 13:58
2006.02.12
openssl