Текущий архив: 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