Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2010, 17:39   #1
Glauberzu
 
Регистрация: 24.08.2010
Сообщений: 3
По умолчанию Объекты и ListBox

Я хочу каждой строке поставить в соответствие по объекту произвольного типа.
Имеется след. код
Код:
type
Sample = class(TObject)
Number: Integer;
end;  // объявляю класс

var
Test: Sample;

begin:
Test:=Sample.Create;
Test.Number:=3;
... //инициализирую окно в котором есть listbox, указываю родителя и прочие красивости

Baza:=Flistbox.Items.Create; //инизиализирую область памяти под строки

AFForm.Flistbox.Items.AddObject('Testing in progress', Test);

Test:=AFForm.Flistbox.items.object[0]; //попытка вернуть объект по индексу, компилятор выдает ошибку (несовметимость типов Tobject и Sample)

end;
Есть еще такая вариация добавления
AFForm.Flistbox.AddItem('Testing in progress', Test); ... чем она отличиается от приведенной, не знаю (но не работает ни та, ни эта). Если расскажите - скажу "спасибо" =)

PS Если просто добавлять строки через AFForm.Flistbox.Items.Append (тоесть без объектов) все компилится и работает на "ура".
Glauberzu вне форума Ответить с цитированием
Старый 24.08.2010, 18:05   #2
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Цитата:
Сообщение от Glauberzu Посмотреть сообщение
Я хочу каждой строке поставить в соответствие по объекту произвольного типа.
Имеется след. код
Код:
type
Sample = class(TObject)
Number: Integer;
end;  // объявляю класс

var
Test: Sample;

begin:
Test:=Sample.Create;
Test.Number:=3;
... //инициализирую окно в котором есть listbox, указываю родителя и прочие красивости

Baza:=Flistbox.Items.Create; //инизиализирую область памяти под строки

AFForm.Flistbox.Items.AddObject('Testing in progress', Test);

Test:=AFForm.Flistbox.items.object[0]; //попытка вернуть объект по индексу, компилятор выдает ошибку (несовметимость типов Tobject и Sample)

end;
Есть еще такая вариация добавления
AFForm.Flistbox.AddItem('Testing in progress', Test); ... чем она отличиается от приведенной, не знаю (но не работает ни та, ни эта). Если расскажите - скажу "спасибо" =)

PS Если просто добавлять строки через AFForm.Flistbox.Items.Append (тоесть без объектов) все компилится и работает на "ура".
убрать нужно, то что я выделил
и еще Test.free сделай, потом "ворачивай", и вроде там через @

Последний раз редактировалось ZuBy; 24.08.2010 в 18:08.
ZuBy вне форума Ответить с цитированием
Старый 24.08.2010, 18:49   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
//попытка вернуть объект по индексу, компилятор выдает ошибку (несовметимость типов Tobject и Sample)
Учим Азы, а именно Приведение типов
Пример: TSample(TObject)
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3D объекты shmelvs Общие вопросы Delphi 2 17.06.2010 02:36
как добавить в listbox файлы(пишу с помощью bassplayer)(Listbox+opendialog=play) blackstersl Общие вопросы Delphi 11 09.06.2010 13:23
Объекты hidalgo Паскаль, Turbo Pascal, PascalABC.NET 0 03.06.2010 17:35
Объекты в С++ MasterGH Общие вопросы C/C++ 3 13.11.2009 22:14