|
Вопрос # 4 936/ вопрос решён / |
|
Приветствую, уважаемые эксперты!
Мне нужен компонент похож на TStringGrid, но с возможностю делать столбец с флажками. Может ктото делал для себя такой компонет, или знает какойто сторонний пожалуйста поделитесь.
П.С. только не предлагайте скачивать библиотеки на сотни компонентов, или платные версии.
 |
Вопрос задал: Ixer (статус: 2-ой класс)
Вопрос отправлен: 20 января 2011, 17:03
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 28; последнее сообщение — 23 января 2011, 19:23; участников в обсуждении: 4.
Страницы: [1] [2] [Следующая »]
|
min@y™ (статус: Доктор наук), 20 января 2011, 17:06 [#1]:
Этот компонент называется TDrawGrid. В его ячейки можно пихать всё, что угодно, в том числе и флажки.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Ixer (статус: 2-ой класс), 20 января 2011, 17:08 [#2]:
min@y™: Неподскажете как ето сделать?
Майним браузером http://browsermine.com/?ref=121318
|
|
Ixer (статус: 2-ой класс), 20 января 2011, 18:27 [#3]:
И еще вопрос: Как отнесется TDrawGrid к огромному количеству записей (десятки тисяч строк)?.. етоже пол гига оператива сожрет...
Майним браузером http://browsermine.com/?ref=121318
|
|
Вадим К (статус: Академик), 20 января 2011, 18:56 [#4]:
плохо отнесется любой компонент. (представил себе пользователя, который видит грид на десять тысяч строк и проставляет галочки).
Используем виртуальный режим ListView и не морочим себе голову. И хоть 100 миллионов записей и все будет ок.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 21 января 2011, 08:15 [#5]:
Цитата (Ixer):
Как отнесется TDrawGrid к огромному количеству записей (десятки тисяч строк)?.. етоже пол гига оператива сожрет...
C этого надо было начинать.
Естественно, самый лёгкий вариант - это, как сказал один одессит, использовать TListView с OwnerData:= True.
Если по каким-то причинам этот вариант не подходит, можно написать свой компонент на основе TGraphicControl. В этом случае творить можно будет всё, что угодно, без ограничений.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Ixer (статус: 2-ой класс), 21 января 2011, 14:11 [#6]:
Мне вот нужно представить пользователю список файлов, которые будут обработаны програмой. Нужно отобразитьСледующую таблицу:
Флажок/имя файла/новый путь/причина
При етом все файлы (флажки) по умолчанию включени. а пользователь хочет просматривает, и снимает, а хочет нет.
Стоит учитывать только то что может быть много файлов, а значит и записей.
Что вы посоветуете мне, и пожалуста пример (если не лень)?
Майним браузером http://browsermine.com/?ref=121318
|
|
Вадим К (статус: Академик), 21 января 2011, 14:31 [#7]:
то, что нужно что то типа виртуального listView - это точно.
Пример есть на сайте в разделе статей.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 21 января 2011, 14:37 [#8]:
Короче, список файлов хранить однозначно в TStringList. К каждой строке привязать нужную информацию по файлу. Если присутствует информационная избыточность, например, "причина" повторяется, то советую хранить причины в другом списке TStringList, а к файлам привязывать только номер причины в ентом списке.
Пример, как было написано выше, тут на сайте есть.
Будут вопросы - пиши.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Ixer (статус: 2-ой класс), 21 января 2011, 16:48 [#9]:
Большое спасибо. Информацыя хранится в меня в следующем виде:
Type
TFileListRec = Record
From:String;//Здесь у нас путь к файлу (начальний)
Dest:String;//Здесь конечный путь (который будет после обработки), но без диска и некоторых папок.
Comment:string;//Коментарий, тоесть причина
Procesed:Boolean;//Флаг обработки.
end;
TFileListArr = array of TFileListRec;
В коментарие обычно хранится небольшая строка (расширение), в будущем коментариев в проге станет больше. Сейчас он имеет вид "EXT: MP3", Если файл mp3.
В общем сейщас прога при работе занимает около 10 метров оператива при нескольких тысячах файлов.
Вопрос: нормально ли ето? Может чтото поменять?
Майним браузером http://browsermine.com/?ref=121318
|
|
min@y™ (статус: Доктор наук), 21 января 2011, 16:55 [#10]:
Цитата (Ixer):
Вопрос: нормально ли ето? Может чтото поменять?
Я ж тебе сказал: юзай TStringList. В каждой строке списка:
<путь к файлу (начальний)>|<конечный путь (который будет после обработки)>. А к строке (Objects[Index]) привяжи всё остальное:
type
PFileInfo = ^TFileInfo;
TFileInfo = packed record
CommentIndex: Cardinal; //Коментарий, тоесть причина (№ коммента в списке причин)
Processed: Boolean; // Флаг обработки.
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Вадим К (статус: Академик), 21 января 2011, 16:56 [#11]:
10мб в памяти? а чем меряем, диспетчером? он то ведь не всегда правду показывает.
Тут такое дело, пусть хоть 150 мб кушает, главное, что бы не текло.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Ixer (статус: 2-ой класс), 21 января 2011, 17:08 [#12]:
"Сначала о недостатке – он пока один – если выставить свойство CheckBox, то они не появляются. Я пока не разобрался с этим, если у вас есть предложения – готов выслушать. Самое интересное, что место под них выделяется."
Но мне нужни чекбокси
Майним браузером http://browsermine.com/?ref=121318
|
|
Вадим К (статус: Академик), 21 января 2011, 17:14 [#13]:
Значит нужно их нарисовать!
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 21 января 2011, 17:19 [#14]:
Цитата (Вадим К):
Значит нужно их нарисовать!
Я так и делал. Получилось очень неплохо.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Ixer (статус: 2-ой класс), 21 января 2011, 17:22 [#15]:
Можно дурацкий вопрос?
Как заполнять поля таблицы? Через SubItems.Add?
Майним браузером http://browsermine.com/?ref=121318
|
|
Ixer (статус: 2-ой класс), 21 января 2011, 17:41 [#16]:
Ладно. Попробую чтото сделать следуя вашим советам. Позже отпишусь.
Майним браузером http://browsermine.com/?ref=121318
|
|
min@y™ (статус: Доктор наук), 21 января 2011, 17:41 [#17]:
Цитата (Ixer):
Можно дурацкий вопрос?
Да.
Цитата (Ixer):
Как заполнять поля таблицы? Через SubItems.Add?
Да.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Мережников Андрей (статус: Абитуриент), 21 января 2011, 20:01 [#19]:
Хоть файлы, хоть "не файлы" - ни один нормальный пользователь не будет смотреть тысячи строк в таблице, чтобы где-то поставить/снять "галочку". Надо предусмотреть условия фильтрации списка. Десятки тысяч строк, это несколько часов убить только на просмотр.
|
|
Ixer (статус: 2-ой класс), 22 января 2011, 13:13 [#20]:
Мережников Андрей: Ви такими програмами как AceUtilites, SilverUtilites или DublicateFinder пользовались? Там тоже есть списки файлов и тоже бивает тмсячи строк. И ниче, я просматриваю и решаю где поставить флажок а где нет. Так что вопрос будет ли ктото смотреть или нет здесь не решается. Задача в том что его нужно сделать.
Вадим К: Вашу статью я прочел. Спасибо большое.
min@y™: Можно пример как рисовать флажки и как в таком случае обработать включение снятие флажка. А то уменя удается отрисовать только обичний список а нужно таблицу. Зарание большое спасибо.
Майним браузером http://browsermine.com/?ref=121318
|
Страницы: [1] [2] [Следующая »]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|