Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.038 c
15-1137657018
Kostik
2006-01-19 10:50
2006.02.12
Delphi 8


2-1138017729
mozgan
2006-01-23 15:02
2006.02.12
И все же как "наксерить" компонент Image1?


8-1125464223
Rentgen
2005-08-31 08:57
2006.02.12
Как заставить компьютер послушать?


1-1136819121
utter
2006-01-09 18:05
2006.02.12
Удаление файлов по маске


1-1136814083
Gear
2006-01-09 16:41
2006.02.12
Как программно установить файл инсталляции с расширением msi?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский