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

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

Скроллинг в DBGrid [D7, IB6.x, FireBird]


Страницы:   1 2

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 скажем?


Страницы:   1 2

Наверх

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