![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определение адреса конструктора [D6, Win95/98, WinME, NT4, Win2k, WinXP]
Ученик © (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]>Ученик
Зачем ?
Что хочешь сделать ??