Форум: "Основная";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
Внизкак в listbox хранить двойные данные Найти похожие ветки
← →
malamba (2005-10-17 17:26) [0]Есть к примеру выборка из базы:
код......наименование
3 ... Знайка
4 ... Незнайка
78 ... Чертяйка
Наименования я благополучно заношу в listbox или ему родственный компонент.
А хотелось бы хранить рядом еще и коды для дальнейшего обращения к базе данных ( в которых эти коды уникальны).
В TreeView есть метод AddObject - там я добавляю и наименование и собственно объект ( по сути, код в виде pointer)
Пробовал делать такое же в listbox, но не смог получить доступ к объекту.
И вообще, кто как реализует такую схему, где есть данные, одна часть которых визуализируется, а другая нет, причем что сохранить нужно все данные.
← →
begin...end © (2005-10-17 17:30) [1]> malamba (17.10.05 17:26)
> Пробовал делать такое же в listbox, но не смог получить
> доступ к объекту.
Как пробовали?
← →
Antonn © (2005-10-17 17:33) [2]
pFufel = ^Tfufel
TFufel = record
_name:string;
i,ii,iii:integer;
end;
var Fufel:pFufel;
begin
new(Fufel);
Fufel._name:="";
fufel.i:=0;
ListBox1.Items.AddObject(Fufel._name,TObject(Fufel));
примерно так...
ennd;
← →
TUser © (2005-10-17 17:52) [3]Используй ListView - и не потребуется приводить указатель на запись к типу TObject.
← →
begin...end © (2005-10-17 17:56) [4]Честно говоря, не понял, зачем в данном случае запись.
ListBox.AddObject("Знайка", TObject(3))
← →
Antonn © (2005-10-17 18:00) [5]begin...end © (17.10.05 17:56) [4]
Честно говоря, не понял, зачем в данном случае запись.
ListBox.AddObject("Знайка", TObject(3))
это где?
← →
malamba (2005-10-17 18:02) [6]В принципе и я к этому пришел: вначале ListBox.AddObject("Знайка", TObject(3)),
а потом оставил только список записей ( record).
Просто хотелось бы узнать, верной ли дорогой я иду...
← →
begin...end © (2005-10-17 18:03) [7]> Antonn © (17.10.05 18:00) [5]
Что "где"?
ListBox.Items.AddObject("Знайка", TObject(3))
← →
Eraser © (2005-10-17 18:03) [8]
> Antonn © (17.10.05 17:33) [2]
Оформи TFufel как класс и будет тебе счастье )
всё равно в этой структуре используется тип неопределённого размера (string).
← →
begin...end © (2005-10-17 18:07) [9]> Eraser © (17.10.05 18:03) [8]
> Оформи TFufel как класс и будет тебе счастье
Я громко ругаться не буду, ладно?
> всё равно в этой структуре используется тип неопределённого
> размера (string)
И что?
← →
Antonn © (2005-10-17 18:08) [10]begin...end © (17.10.05 18:03) [7]
ах это... ну не знаю, прикинул, что с items точно работает, дельфи под рукой нет, неначем проверить:)
Eraser © (17.10.05 18:03) [8]
кому надо, тот и оформит, мое дело подсказать:) да и дельфи нет, чтоб дез ошибок написать.
← →
Antonn © (2005-10-17 18:12) [11]кстати, напишу и как их достать:
procedure GetTFuflo(var F:TFufel; _num:integer);
begin
F:=pFufel(listbox1.Object[_num]);
end;
прально?
← →
Malamba (2005-10-17 18:15) [12]Класс, то оно хорошо, но стоит ли городить огород:
мне нужен связный список (а получается список независимых экземпляров классов), привязанный к компоненту.
Хотелось бы не из пушки по воробьям.
И что-то вроде:
нужный элемент в своем новом списке = IndexOf ( "выбранный элемент в listBoxe")
А может в самом деле, как ранее выступавший товарищ говорил: "Используй ListView"
Сделал один столбец невидимый и не мучаюсь с остальным
← →
Antonn © (2005-10-17 18:16) [13]Malamba (17.10.05 18:15) [12]
нужный элемент в своем новом списке = IndexOf ( "выбранный элемент в listBoxe")
примерно как в [11]?
← →
malamba (2005-10-17 18:20) [14]Пока писал, ентого еще не было.
Сейчас обглодаю.
← →
Malamba (2005-10-17 18:42) [15]Позвольте, позвольте:
F:=pFufel(listbox1.Object[_num]);
А вот здесь вы конем ходили... У меня все записано..
Выглядит элегантно, но
TObject(Fufel) - [Error] untMain.pas(680): Invalid typecast
← →
Malamba (2005-10-17 18:42) [16]Удалено модератором
← →
malamba (2005-10-17 18:44) [17]Ой тормоз, ой тормоз...
И главное: listbox1.Object - такого нет в природе в естественном виде.
← →
Antonn © (2005-10-17 19:28) [18]F:=pFufel(listbox1.items.Object[_num]);
← →
Antonn © (2005-10-17 19:33) [19]да, и про Dispose() не забывайте, а то память потечет при удалении указателей.
← →
malamba (2005-10-18 12:40) [20]Да, именно оно. И ведь как красиво...
Маленькое уточнение
pFufel = ^Tfufel
TFufel = record
_name:string;
i,ii,iii:integer;
end;
Следует читать
Type
TFufel = record
pFufel = ^Tfufel
_name:string;
i,ii,iii:integer;
end;
т.е. указатель внутри объявления записи
← →
Antonn © (2005-10-18 13:50) [21]malamba (18.10.05 12:40) [20]
т.е. указатель внутри объявления записи
это почему? у меня и выше работает...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.04 c