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

Вниз

Как "динамический" вызать конструктор?   Найти похожие ветки 

 
Сергей М. ©   (2006-08-01 16:31) [80]


> zamtmn ©   (01.08.06 16:26) [78]
> ваши предложения?


Мои предложения  не отличатся оригинальностью - не маяться дурью и использовать class.


 
Джо ©   (2006-08-01 16:52) [81]

Или использовать records в Delphi 2006 :)


 
zamtmn ©   (2006-08-01 17:47) [82]

>>Мои предложения  не отличатся оригинальностью - не маяться дурью и использовать class
и в чем будет принципиальная разница? ну разве что ненадо хранить предка и поля

>>Или использовать records в Delphi 2006 :)
дак они у меня работают, только соответственно методов не имеют


 
Джо ©   (2006-08-01 17:51) [83]

> дак они у меня работают, только соответственно методов не
> имеют

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


 
zamtmn ©   (2006-08-01 17:55) [84]


> В том и фишка, что в D2006 в них методы можно объявлять
> и даже перегрузку операторов. Ну, и конструкторы (с параметрами).
>

Это всё есть у обжекта, а фишка с перегрузкой операторов без автоматических деструкторов малоприменима


 
Джо ©   (2006-08-01 17:57) [85]

> а фишка с перегрузкой операторов без автоматических деструкторов
> малоприменима

Почему?


 
zamtmn ©   (2006-08-01 18:09) [86]

допустим перегрузили + и *
d:=(a+b)*c
можно посчитать только с применением промежуточной пременной или заменив значение a(b)
без автодеструктора компилятор забудет о промежуточной переменной:(
и если это сложные типы
например
record
 pdata:^data;
 x,y....:intrger;
end;
будет утечка памяти
кстати в freepascal вот шаблоны появились:), раз уж пошла тема про "сианизацию" паскаля


 
jack128 ©   (2006-08-01 18:30) [87]

zamtmn   (01.08.06 0:12) [34]
пост 27 прекрасно компилируется на D2006 без всяких патчей.

ну значит у меня дома какой то особенный дельфи стоит, на котором эта фишка не компилируется. (Borland® Delphi® for Microsoft® Windows™ Version 10.0.2151.25345 )

zamtmn ©   (01.08.06 12:38) [38]
vmtQueryInterface    = 0;
vmtAddRef            = 4;
vmtRelease           = 8;
vmtCreateObject      = 12;

ниче не напоминает?

а.. То есть если я в своей программе объявлю константу const QueryInterface = 12 - то моя прога привязана к ком?

tesseract ©   (01.08.06 13:29) [43]
находиться "следы" в частности ссылки на GUID у Tobject.  Хотя ИМХО это RTTI- радости.


Это для поддержки ком, а конкретно IUnknown.QueryInterface.  Но и без ком, всё будет отлично работать.
И вообще, дельфи совместима с ком, но не привязана к нему. Например интерфейсов без guid"а в ком быть не может, а в дельфи есть.


 
zamtmn ©   (2006-08-01 18:51) [88]

у меня на 10.0.2151.25345

program Project1;
type
TestObj = object
private
 procedure Test;
end;
procedure TestObj.Test;
begin
    readln;
end;
begin
end.

компилируешся. патчей не ставил

>>QueryInterface = 12 - то моя прога привязана к ком?

>>Это для поддержки ком, а конкретно IUnknown.QueryInterface.  Но и без ком, всё будет отлично работать.
ладно здаюсь, не привязка, ПОДДЕРЖКА
Мне поддержка COM любым объектом моей программы ненужна


 
Игорь Шевченко ©   (2006-08-02 11:26) [89]


> ладно здаюсь, не привязка, ПОДДЕРЖКА
> Мне поддержка COM любым объектом моей программы ненужна


Ты бредишь. Читай [49] до полного просветления.


 
GrayFace ©   (2006-08-04 09:17) [90]

Ну дак что ты решил? Есть, как минимум 2 нормальных решения проблемы - [79] или такое: ZeroMem, конструктор базового боъекта, изменение TBM.


 
GrayFace ©   (2006-08-04 09:18) [91]

изменение TBM
В смысле изменение указателя на TBM в объекте.



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

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

Наверх




Память: 0.62 MB
Время: 0.046 c
15-1154320087
vajo
2006-07-31 08:28
2006.08.27
Заблокировалась учетная запись Win XP.


2-1155146869
Батыр
2006-08-09 22:07
2006.08.27
Где можно скачать Delphi 6 or 7


15-1154000038
Иксик
2006-07-27 15:33
2006.08.27
Поздравьте меня!


2-1154763620
Генадий
2006-08-05 11:40
2006.08.27
int64


2-1154503790
Ivan Chuvashov
2006-08-02 11:29
2006.08.27
exe фаил