![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Скроллинг в DBGrid [D7, IB6.x, FireBird]
Shizuku © (2005-02-11 12:21:00)В некоторые из строк DbGrid сохранены достаточно длинные строки, которые не влазят целиком на экран. Как добавить в DBGrid горизонтальный скролинг?
ЮЮ (2005-02-18 04:17:00) [1]>А можно сделать, чтобы автоматически определялась потребность в n-ом количестве строк
Для этого надо просканировать весь датасет и просчтать максимальную высоту ячейки, включив флаг DT_CALCRECT в вызываемую функцию рисования DrawTextEx, исходя из которого и DefaulRowHeight определить это число.
Shizuku (2005-02-17 14:44:00) [2]to Yuuuu> Arigato, помогло.
А можно сделать, чтобы автоматически определялась потребность в n-ом количестве строк (AutoRowLines)?
Некто (2005-02-14 12:25:00) [3]делал я как-то тестовою оболочку, использовал TDBCtrlGrid
делал наспех, поэтому получилось не очень красиво, но можно всё было сделать юзабельным :о)
ЮЮ (2005-02-14 03:55:00) [4]>Пробовала включить WordWrap у столбца - так не помогло
DbGridEh.RowLines установи 2 или более
Anatoly Podgoretsky (2005-02-11 20:44:00) [5]Это еще ему везет, что Интербейс, а вот с ADO и MSSQL можно размахнуться на 8000 символов, такое количество поместится только на экране 1600*1200 мелким шрифтом, для информации на странице А4 обычно помещается 4000-5000 символов.
Anatoly Podgoretsky (2005-02-11 20:41:00) [6]ЮЮ © (11.02.05 13:11) [11]
Может, надо просто ставть в ячейку, щелкнуть и гуляй по всей строке как хочешь. Но все равно не удобно.
Shizuku (2005-02-11 18:18:00) [7]to Sergey13>EhLib
Чем там эту многострочность включить? Пробовала включить WordWrap у столбца - так не помогло.
msguns (2005-02-11 16:25:00) [8]"Я так и зналь !" (с) Опухоль не в гриде и даже не в базе ;)))
Sergey13 (2005-02-11 15:19:00) [9]2[23] Shizuku © (11.02.05 15:10)
> Многострочность одной строки этому не помешает?
Ты меня спрашиваешь? Откуда я знаю чего у тебя там кто использует. Попробуй. По моему не помешает. В накладе уж точно не останешься.
Danilka (2005-02-11 15:18:00) [10][23] Shizuku © (11.02.05 15:10)
Нет
Shizuku (2005-02-11 15:10:00) [11]У меня пользователь использует строки этой таблицы как пункты меню-списка, т.е. выделяет правильные ответы и жмёт "Далее". Многострочность одной строки этому не помешает?
Sergey13 (2005-02-11 15:05:00) [12]Ну поставь себе EhLib-овский грид. Там можно в несколько строк выводить без дополнительного прораммирования.
http://www.ehlib.com/RUS/default.htm
Shizuku (2005-02-11 14:55:00) [13]to msguns>
Задача стоит в разработке базы тестов по психологии. Проблемный грид отображает таблицу с вариантами ответов на очередной тест. Максимальная длина поля под текст ответа пока не превышает 125 символов, но заказчик предпочитает использовать читобельный шрифт среднего размера (10-12).
До пяти экранов, думаю, не дойдёт ^_^
msguns (2005-02-11 14:19:00) [14]>Ega23 © (11.02.05 12:45) [2]
>По крайней мере мне не удавалось такие строки в грид впихнуть.
OnGetText филду и там Text := Copy(Fields[0].AsString,1,x)
>Shizuku © (11.02.05 12:21)
Вы сами когда-нибудь работали с таким гридом, где строка длинною в пять экранов. Это ж, извините, издевательство над пользователем.
Если уж так сильно пригорело показывать весь текст сразу, то показывайте его в ячейке несколькими строками. А вообще рассказали бы для общего развития что за задача перед Вами стоит, что за инфу вы показываете в гриде ? Может там гнойник в самой БД, типа коряво спроектирована.
ЗЫ. Представляю, какое будет уродище, если сделать-таки грид на 3 экрана вширь, а длинных строк будет процентов 10. Это что ж будет в телевизоре - "туман, туман, седая пелена" ? В смысле белый весь ;))
msguns (2005-02-11 14:18:00) [15]>Ega23 © (11.02.05 12:45) [2]
>По крайней мере мне не удавалось такие строки в грид впихнуть.
OnGetText филду и там Text := Copy(Fields[0].AsString,1,x)
>Shizuku © (11.02.05 12:21)
Вы сами когда-нибудь работали с таким гридом, где строка длинною в пять экранов. Это ж, извините, издевательство над пользователем.
Если уж так сильно пригорело показывать весь текст сразу, то показывайте его в ячейке несколькими строками. А вообще рассказали бы для общего развития что за задача перед Вами стоит, что за инфу вы показываете в гриде ? Может там гнойник в самой БД, типа коряво спроектирована.
ЗЫ. Представляю, какое будет уродище, если сделать-таки грид на 3 экрана вширь, а длинных строк будет процентов 10. Это что ж будет в телевизоре - "туман, туман, седая пелена" ? В смысле белый весь ;))
Карелин Артем (2005-02-11 13:48:00) [16]А может вписывать расширить строку вглубь? Переносы сделать с пределах одной ячейки к примеру?
Ega23 (2005-02-11 13:31:00) [17]Тогда скроллинг появится у формы :) Тогда уж лучше положить Grid на ScrollBox, установив ему такую ширину, чтобы вмещались все столбцы, независимо от их ширины. Тогда, наверное, можно будеть лицезреть столбец грида не с самого начала.
Сколько с клиентами не общался - никто и никогда на такой столбец не смотрел (типа, туда возможное сообщение об ошибке выводилось). Когда я просил сказать, что в этом столбце отписывается - мне отвечали: "А там непонятно нихрена. Неудобно.", после чего я пересмотрел пользовательский интерфейс.
ЮЮ (2005-02-11 13:26:00) [18]> А если принудительно установить ширину грида в MyForm.Width + 1 скажем?
Тогда скроллинг появится у формы :) Тогда уж лучше положить Grid на ScrollBox, установив ему такую ширину, чтобы вмещались все столбцы, независимо от их ширины. Тогда, наверное, можно будеть лицезреть столбец грида не с самого начала.
Danilka (2005-02-11 13:22:00) [19]<offtopic>
[10] Sergey13 © (11.02.05 13:09)
тады, ой, не заметил. :) а из дельфей можно конечно, но как-то не кошерно лишнее на клиента тащить.
</offtopic>
[13] Ega23 © (11.02.05 13:19)
> В самом запросе поле дополнительное ввести...
Понятно, что-то я туплю. :)
Shizuku (2005-02-11 13:20:00) [20]to Yuuuu> А если принудительно установить ширину грида в MyForm.Width + 1 скажем?