Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Определение адреса конструктора [D6, Win95/98, WinME, NT4, Win2k, WinXP]


Страницы:   1 2 3

Ученик ©   (2002-07-16 16:13:00) 

Можно по адресу класса определить адрес конструктора объектов этого класса ?

var
P : Pointer;
begin
P := TBitmap;

Необходимо вычислить адрес TBitmap.Create, используя P, возможно ли ?


Digitman   (2002-07-16 16:42:00) [41]

Ну, предположим, вызовешь ты конструирующий метод класса ..
А экземпляр-то собственно кто будет за тебя создавать ?


Ученик   (2002-07-16 16:41:00) [42]

>Skier
var
P : TPersistentClass;
begin
RegisterClasses([TBitmap]);
P := GetClass("TBitmap");
if P <> nil then
P.Create;
Вызывается TObject.Create

>Digitman
Вызывать по адресу класса создание объектов этого класса.


Digitman   (2002-07-16 16:38:00) [43]

ну, к примеру :

showmessage(inttohex(integer(@ TBitmap.Create), 8));

А если метод-конструктор с интересующим тебя именем объявлен как overload ? Что тогда ?

И - зачем это тебе ? Если не секрет ?


Skier   (2002-07-16 16:32:00) [44]

>Ученик
А почему TObject у тебя же TBitmap ?


Skier   (2002-07-16 16:30:00) [45]

>Ученик
В догонку :
Почитай про метаклассы.


Ученик   (2002-07-16 16:29:00) [46]

Вызывается конструктор TObject


Skier   (2002-07-16 16:27:00) [47]

>Ученик
для TPersistent копай :
- RegisterClass
- UnRegisterClass
- RegisterClasses
- UnRegisterClasses
- FindClass
- GetClass




Ученик   (2002-07-16 16:23:00) [48]

>Skier
Вызывать по адресу класса создание объектов этого класса, с компонентами все понятно, там constructor; override;, а вот если от TPersistent или TObject ????


Skier   (2002-07-16 16:20:00) [49]

>Ученик
Зачем ?
Что хочешь сделать ??


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо