|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Передача ссылки на объект в TListBox
Что-то совсем запутался
Win7 x64, Delphi 3 Идея - передавать в ListBox вместе со строкой ссылку на IXMLNode, дабы затем можно было посмотрить из чего оно состоит. Добавляю так: Код:
ListBox2.Items.AddObject(LNode.NodeName,TObject(LNode)); Получаю, соответственно так: Код:
LNode:=IXMLNode(ListBox2.Items.Objects[ListBox2.ItemIndex]); Компилятор ругается на несоответствие типов IXMLNode и TObject, притом, если делаю так: Код:
var LNode: IXMLNode; i : integer; begin i := integer(ListBox2.Items.Objects[ListBox2.ItemIndex]); LNode:=IXMLNode(i); end; |
#2
|
||||
|
||||
коротко говоря интерфейс и объект не одно и тоже.
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
Вопрос только в том, как его туда можно засунуть )
Под Дельфи 7, для создаваемого мною же класса все работало. |
#4
|
||||
|
||||
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TMyObject = class(TObject) i: Integer; constructor Create(i: Integer); end; TForm1 = class(TForm) ListBox1: TListBox; procedure FormCreate(Sender: TObject); procedure ListBox1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} { TMyObject } constructor TMyObject.Create(i: Integer); begin Self.i:=i; end; procedure TForm1.FormCreate(Sender: TObject); begin ListBox1.Items.AddObject('1', TMyObject.Create(1)); ListBox1.Items.AddObject('22', TMyObject.Create(22)); end; procedure TForm1.ListBox1Click(Sender: TObject); begin ShowMessage(IntToStr(TMyObject(ListBox1.Items.Objects[ListBox1.ItemIndex]).i)); end; end. Пишу программы за еду. __________________ |
#5
|
|||
|
|||
Ну да, спасибо, все получилось
Я бы наверное неделю парился, пока додумался бы создать дополнительный класс с переменной i: IXMLNode внутри Еще один вопрос напросился, в описании интерфейсов так и не сообразил, запутали они меня своими счетчиками, нужно ли по окончании программы удалять все эти дополнительные классы, т.е. вызывать для них метод destroy? Последний раз редактировалось M.A.D.M.A.N., 20.05.2014 в 14:27. |
#6
|
||||
|
||||
Разумеется.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#7
|
|||
|
|||
Ок, спасибо!
|