![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
посоветуйте компонент или др. решение
clix © (2013-05-10 17:14:00)вобщем есть строки типа (123, ааа, "ббб ввв ггг", 0, "ддд"). нужно отображать только 'ааа' и 'ддд', но идентификатором тоесть уникальным номером является '123' и его ненужно отображать а поиск и все действия происходят по идентификатору. думал использовать листбокс для вывода а сами строки хранить в стринглисте но тогда нужно нужно каждый раз разбивать строки и искать идентификатор. может кто знает компонент типа listview который просто скрывает необходимые колонки?
Германн (2013-05-11 03:08:00) [1]
> clix © (10.05.13 17:14)
>
> вобщем есть строки типа (123, ааа, "ббб ввв ггг", 0, "ддд").
> нужно отображать только 'ааа' и 'ддд'
Ну так и отображай только их. Что мешает?
Есть событие OnDrawItem.
Ega23 (2013-05-10 23:54:00) [2]
> может в стринглисте каждой строке присваивать рекорд с параметрами?
TStringList.AddObject + F1
Kilkennycat (2013-05-10 23:39:00) [3]тогда уж лучше http://www.delphibasics.ru/TList.php
clix (2013-05-10 22:04:00) [4]может в стринглисте каждой строке присваивать рекорд с параметрами??
Kilkennycat (2013-05-10 20:38:00) [5]т.е. проблема в обратке - понять, какая строка в стринглисте соответствует клику в листбоксе?
возможно, подойдет такой вариант: заполняем итемы листбокса полностью, устанавливаем ему свойство ownerDraw, отрисовку выполняем самостоятельно в ListBoxDrawItem, отфильтровывая ненужное. Это просто, видим что хотим, плюс и цвета какие угодно, в том числе выделения, и по клику мы получаем полную строку. Примеров работы с ListBoxDrawItem мильен.
Kilkennycat (2013-05-10 20:20:00) [6]на 150 строк любое решение будет быстро.
clix (2013-05-10 18:46:00) [7]вот и думаю подойдет ли это или медленно будет работать, строк какбы неособо много 150 максимум
clix (2013-05-10 18:19:00) [8]в стринглисте строки хранится как есть и добавляются новые постепенно или удалются, берется строка из стринг лист разбивается комматекст и ищется нужное если нету то следующая строка и тд пока ненайдется.
Kilkennycat (2013-05-10 18:11:00) [9]в [4] спутал с стринггрид
Kilkennycat (2013-05-10 18:10:00) [10]
> с рекордом неособо знаком.
уже знаком. там есть еще вариант packed и с вариантными записями, тут они не требуются.
> записываю строки с стринглист
стринглист - это промежуточное решение, чтобы загрузить из файла?
Kilkennycat (2013-05-10 18:08:00) [11]
> с рекордом неособо знаком.
уже знаком. там есть еще вариант packed и с вариантными записями, тут они не требуются.
> записываю строки с стринглист
стринглист - это промежуточное решение, или источник данных? если источник, то как они в нем хранятся, неужели не уже по столбцам?
clix (2013-05-10 17:52:00) [12]с рекордом неособо знаком... сейчас делаю примерно так; записываю строки с стринглист, комматекст разбивает строку и вывожу в лист бокс нужную часть, затем по нажатияю на строке в листбоксе например, перебераю строки разбивая их комматекст и ищу значение которое в листбоксе и потом уже удаляю эту строку по индексу из листбокса и из листбокса
Kilkennycat (2013-05-10 17:34:00) [13]лучше разделить данные от отображения.
создай запись типа:
type Taaa = record
index : integer;
value1 : string;
value2 : byte;
....
valueN: string;
end;
объяви массив
ааа : array of Taaa;
в нем ты хранишь свои строки
после чего в цикле
for i := 0 to High(aaa) do begin
if aaa[i].index = 123 then ...
end;
ты можешь запролнить (отрисовать) что угодно и где угодно
Kilkennycat (2013-05-10 17:25:00) [14]и в листбоксе и в листвью это можно сделать, и в стринглисте
> просто скрывает необходимые колонки?
а заодно парсит твои строки, реализует механизм поиска...