Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

посоветуйте компонент или др. решение


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]

и в листбоксе и в листвью это можно сделать, и в стринглисте

> просто скрывает необходимые колонки?

а заодно парсит твои строки, реализует механизм поиска...


Наверх

Титульная страница Поиск, карта сайта Написать письмо