Форум: "Основная";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
ВнизПоинтер на интерфейс Найти похожие ветки
← →
elserpiente (2007-06-13 15:10) [0]Можно ли переменной-указатель (Pointer) указать поинтер интерфейса? и как с такой переменной можно потом прочитать интерфейс
← →
Сергей М. © (2007-06-13 15:15) [1]
> Можно ли переменной-указатель (Pointer) указать поинтер
> интерфейса?
Можно.
MyPointerVariable := MyInterface;
Но не нужно.
> как с такой переменной можно потом прочитать интерфейс
>
Что значит "прочитать интерфейс" ?
← →
elserpiente (2007-06-13 15:20) [2]ну что типа этого
var
p: pointer;
i: IMyInt;
...
i := TMyInt.Create;
p:= @i;
IMyInt(p).MyField := 0;
← →
Сергей М. © (2007-06-13 15:23) [3]А за каким лешим нужны эти хитромудрые преобразования ?
Почему переменную p не сделать типа IInterface ?
← →
elserpiente (2007-06-13 15:28) [4]это нужно для хранении данных в TTreeView, а именно в TTreeNode.data
← →
jack128 © (2007-06-13 15:33) [5]elserpiente (13.06.07 15:28) [4]
это нужно для хранении данных в TTreeView, а именно в TTreeNode.Data
Ну тогда лудше так:var
Intf: IUnknown;
begin
...
TreeView1.Items[0].Data := Pointer(Intf);
Intf._AddRef;
end;
begin
...
IUnknown(TreeView1.Items[0].Data)._Release;
TreeView1.Items[0].Data := nil;
end;
← →
jack128 © (2007-06-13 15:34) [6]jack128 © (13.06.07 15:33) [5]
begin
...
IUnknown(TreeView1.Items[0].Data)._Release;
TreeView1.Items[0].Data := nil;
end;
точнее
if TreeView1.Items[0].Data <> nil then
begin
IUnknown(TreeView1.Items[0].Data)._Release;
TreeView1.Items[0].Data := nil;
end;
← →
elserpiente (2007-06-13 15:50) [7]угу, пасибо, разобрались ;)
← →
elserpiente (2007-06-13 15:57) [8]а вообще може кто то сталкивался с проблемой удаления из TTreeNode данных по ссылке data? можно как-нибудь автоматизироваться этот процес?чтоб при удалении TreeNode данные тоже убивались
← →
Сергей М. © (2007-06-13 16:00) [9]А в чем проблема ?
← →
jack128 © (2007-06-13 16:15) [10]elserpiente (13.06.07 15:57) [8]
а вообще може кто то сталкивался с проблемой удаления из TTreeNode данных по ссылке data? можно как-нибудь автоматизироваться этот процес?чтоб при удалении TreeNode данные тоже убивались
есть событие соответствующее. OnDeleting чтоли.. В нем и освобждай свои данные...
← →
Romkin © (2007-06-13 16:25) [11]И есть возможность написать свой потомок TTreeNode :)
В D6 и выше - OnCreateNodeClass есть.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.058 c