Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2011, 18:57   #1
Club-dance
 
Регистрация: 27.02.2010
Сообщений: 4
По умолчанию frame (аналог oncreate)

Всем привет.
Люди подскажите какое событие происходит при создании frame (аналог oncreate) и какое тогда когда frame создан и его элементы и отобразился.
Club-dance вне форума Ответить с цитированием
Старый 04.05.2011, 19:27   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

В модуле, где объявлен фрейм можно сделать конструктор класса. Это и будет аналог oncreate.

А события на "frame создан и его элементы отобразились" по определению быть не может.
Прик вне форума Ответить с цитированием
Старый 04.05.2011, 20:52   #3
Club-dance
 
Регистрация: 27.02.2010
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Прик Посмотреть сообщение
В модуле, где объявлен фрейм можно сделать конструктор класса. Это и будет аналог oncreate.
Как это сделать?
Club-dance вне форума Ответить с цитированием
Старый 04.05.2011, 21:17   #4
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Код:
type
  TFrame4 = class(TFrame)
  ...
  private
  ...
  public
    constructor Create(AOwner: TComponent); override;
    //после написания этой строки нажать Ctrl+Shift+C. Заготовку конструктора Дельфи напишет сама
  end;

implementation
...
constructor TFrame4.Create(AOwner: TComponent);
begin
  inherited;
  //свой код инициализации (различные действия после создания фрейма)
end;
Прик вне форума Ответить с цитированием
Старый 04.05.2011, 21:39   #5
Club-dance
 
Регистрация: 27.02.2010
Сообщений: 4
По умолчанию

Прик большое спасибо.. прям спас меня!
Club-dance вне форума Ответить с цитированием
Старый 04.05.2011, 21:41   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

override поидее лишнее, виртуальный конструктор в принципе быть не может.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.05.2011, 22:03   #7
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Модуль Classes:
Код:
  TComponent = class(TPersistent, IInterface, IInterfaceComponentReference)
  ...
  private
  ...
  public
    constructor Create(AOwner: TComponent); virtual;
    destructor Destroy; override;
  ...
Прик вне форума Ответить с цитированием
Старый 05.05.2011, 03:57   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию


это ж какой версии Делфи такое?...
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.05.2011, 06:42   #9
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
это ж какой версии Делфи такое?...
Во всех, которые я использую. D7 и D2009.
Прик вне форума Ответить с цитированием
Старый 05.05.2011, 08:35   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

хм, и правда.
самый прикол что реально конструктор не виртуальный все равно(и зачем только борланд вписала это в код vcl, не пойму):
на скрине асм-код вызова конструктора TComponent, как видно обращения к VMT нет, значит он не виртуален(он и не может в принципе таким быть по определению, так как нельзя создавать хрен знает что)
так что всетаки не нужно писать там override
Изображения
Тип файла: png CPU.PNG (3.5 Кб, 132 просмотров)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 05.05.2011 в 08:37.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DataModule.OnCreate Diablas Общие вопросы Delphi 0 02.08.2010 18:12
frame blackstersl Общие вопросы Delphi 1 18.09.2008 16:54
Frame in frame avalon8 Работа с сетью в Delphi 1 31.07.2008 16:14
Проверка событий в onCreate Михаил Юрьевич Общие вопросы Delphi 5 12.06.2008 13:17
Frame Zeraim Общие вопросы Delphi 1 25.05.2008 23:17