Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 936

/ вопрос решён /

Приветствую, уважаемые эксперты!
Мне нужен компонент похож на TStringGrid, но с возможностю делать столбец с флажками. Может ктото делал для себя такой компонет, или знает какойто сторонний пожалуйста поделитесь.
П.С. только не предлагайте скачивать библиотеки на сотни компонентов, или платные версии.

Ixer Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Ixer (статус: 2-ой класс)
Вопрос отправлен: 20 января 2011, 17:03
Состояние вопроса: решён, ответов: 0.


Мини-форум вопроса

Всего сообщений: 28; последнее сообщение — 23 января 2011, 19:23; участников в обсуждении: 4.

Страницы: [1] [2] [Следующая »]

min@y™

min@y™ (статус: Доктор наук), 20 января 2011, 17:06 [#1]:

Этот компонент называется TDrawGrid. В его ячейки можно пихать всё, что угодно, в том числе и флажки.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ixer

Ixer (статус: 2-ой класс), 20 января 2011, 17:08 [#2]:

min@y™: Неподскажете как ето сделать?
Майним браузером http://browsermine.com/?ref=121318
Ixer

Ixer (статус: 2-ой класс), 20 января 2011, 18:27 [#3]:

И еще вопрос: Как отнесется TDrawGrid к огромному количеству записей (десятки тисяч строк)?.. етоже пол гига оператива сожрет...
Майним браузером http://browsermine.com/?ref=121318
Вадим К

Вадим К (статус: Академик), 20 января 2011, 18:56 [#4]:

плохо отнесется любой компонент. (представил себе пользователя, который видит грид на десять тысяч строк и проставляет галочки).

Используем виртуальный режим ListView и не морочим себе голову. И хоть 100 миллионов записей и все будет ок.
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 21 января 2011, 08:15 [#5]:

Цитата (Ixer):

Как отнесется TDrawGrid к огромному количеству записей (десятки тисяч строк)?.. етоже пол гига оператива сожрет...

C этого надо было начинать.
Естественно, самый лёгкий вариант - это, как сказал один одессит, использовать TListView с OwnerData:= True.
Если по каким-то причинам этот вариант не подходит, можно написать свой компонент на основе TGraphicControl. В этом случае творить можно будет всё, что угодно, без ограничений.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ixer

Ixer (статус: 2-ой класс), 21 января 2011, 14:11 [#6]:

Мне вот нужно представить пользователю список файлов, которые будут обработаны програмой. Нужно отобразитьСледующую таблицу:
Флажок/имя файла/новый путь/причина
При етом все файлы (флажки) по умолчанию включени. а пользователь хочет просматривает, и снимает, а хочет нет.
Стоит учитывать только то что может быть много файлов, а значит и записей.
Что вы посоветуете мне, и пожалуста пример (если не лень)?
Майним браузером http://browsermine.com/?ref=121318
Вадим К

Вадим К (статус: Академик), 21 января 2011, 14:31 [#7]:

то, что нужно что то типа виртуального listView - это точно.
Пример есть на сайте в разделе статей.
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 21 января 2011, 14:37 [#8]:

Короче, список файлов хранить однозначно в TStringList. К каждой строке привязать нужную информацию по файлу. Если присутствует информационная избыточность, например, "причина" повторяется, то советую хранить причины в другом списке TStringList, а к файлам привязывать только номер причины в ентом списке.
Пример, как было написано выше, тут на сайте есть.
Будут вопросы - пиши.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ixer

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™

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

Ixer (статус: 2-ой класс), 21 января 2011, 17:08 [#12]:

"Сначала о недостатке – он пока один – если выставить свойство CheckBox, то они не появляются. Я пока не разобрался с этим, если у вас есть предложения – готов выслушать. Самое интересное, что место под них выделяется."

Но мне нужни чекбокси :(
Майним браузером http://browsermine.com/?ref=121318
Вадим К

Вадим К (статус: Академик), 21 января 2011, 17:14 [#13]:

Значит нужно их нарисовать!
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 21 января 2011, 17:19 [#14]:

Цитата (Вадим К):

Значит нужно их нарисовать!

Я так и делал. Получилось очень неплохо.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ixer

Ixer (статус: 2-ой класс), 21 января 2011, 17:22 [#15]:

Можно дурацкий вопрос?
Как заполнять поля таблицы? Через SubItems.Add?
Майним браузером http://browsermine.com/?ref=121318
Ixer

Ixer (статус: 2-ой класс), 21 января 2011, 17:41 [#16]:

Ладно. Попробую чтото сделать следуя вашим советам. Позже отпишусь.
Майним браузером http://browsermine.com/?ref=121318
min@y™

min@y™ (статус: Доктор наук), 21 января 2011, 17:41 [#17]:

Цитата (Ixer):

Можно дурацкий вопрос?

Да.

Цитата (Ixer):

Как заполнять поля таблицы? Через SubItems.Add?

Да.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Вадим К

Вадим К (статус: Академик), 21 января 2011, 18:30 [#18]:

есть же моя статья - https://www.delphi-int.ru/articles/38/
Галочка "подтверждения прочтения" - вселенское зло.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 21 января 2011, 20:01 [#19]:

Хоть файлы, хоть "не файлы" - ни один нормальный пользователь не будет смотреть тысячи строк в таблице, чтобы где-то поставить/снять "галочку". Надо предусмотреть условия фильтрации списка. Десятки тысяч строк, это несколько часов убить только на просмотр.
Ixer

Ixer (статус: 2-ой класс), 22 января 2011, 13:13 [#20]:

Мережников Андрей: Ви такими програмами как AceUtilites, SilverUtilites или DublicateFinder пользовались? Там тоже есть списки файлов и тоже бивает тмсячи строк. И ниче, я просматриваю и решаю где поставить флажок а где нет. Так что вопрос будет ли ктото смотреть или нет здесь не решается. Задача в том что его нужно сделать.

Вадим К: Вашу статью я прочел. Спасибо большое.

min@y™: Можно пример как рисовать флажки и как в таком случае обработать включение снятие флажка. А то уменя удается отрисовать только обичний список а нужно таблицу. Зарание большое спасибо.
Майним браузером http://browsermine.com/?ref=121318

Страницы: [1] [2] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:33
Выполнено за 0.03 сек.