![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Скроллинг в DBGrid [D7, IB6.x, FireBird]
Shizuku © (2005-02-11 12:21:00)В некоторые из строк DbGrid сохранены достаточно длинные строки, которые не влазят целиком на экран. Как добавить в DBGrid горизонтальный скролинг?
Ega23 (2005-02-11 13:19:00) [21]Можно и без отдельного поля, запросом с substr и три точки на конце. :))
Ну это я и имел ввиду. В самом запросе поле дополнительное ввести...
Sergey13 (2005-02-11 13:15:00) [22]2[9] Danilka © (11.02.05 13:07)
Уж еще поофтопчу, сори.
То-же самое и на делфи легко сделать. Выбрал ИД-шники и хлопай в цикле.
Сори еще раз.
ЮЮ (2005-02-11 13:11:00) [23]Смотри внимательно ЮЮ © (11.02.05 12:53) [4]
В гриде принципиально нельзя просмотреть строку шире ширены грида
Sergey13 (2005-02-11 13:09:00) [24]2[9] Danilka © (11.02.05 13:07)
Для Оракла. Там вроде МДБ стоит.
Danilka (2005-02-11 13:07:00) [25][2] Ega23 © (11.02.05 12:45)
Можно и без отдельного поля, запросом с substr и три точки на конце. :))
[6] Sergey13 © (11.02.05 13:02)
Оффтопик.
Ветку про удаление из двух таблиц прикрыли не успел туда написать. Есть варианты без промежуточных таблиц, например, для Орокла:
begin
for i in (
select t1.x1
from t1, t2
where t1.x1 = t2.x1)
loop
delete from t1 where x1 = i.x1;
delete from t2 where x1 = i.x1;
end loop;
end;
Наверняка, для других серверов тоже можно что-то придумать. :)
Shizuku (2005-02-11 13:07:00) [26]to Sergey13> Конечно читаю! Поэтому и пишу. Это намёк на то, что я использую не TQuery, а TIBQuery.
Shizuku (2005-02-11 13:04:00) [27]to Yuuuu> У меня в DBGrid справа, есть скрытый столбец. Когда я установила его свойство Visible в True, то появилась строка прокрутки. Но этот столбец нужен мне скрытым, он используется при построении запросов и иной смысловой нагрузки не несёт.
Sergey13 (2005-02-11 13:02:00) [28]2 [5] Shizuku © (11.02.05 12:55)
Ты ответы читаешь? В [1] и [2] все написано. При чем тут " на ibx-компонентах, без использования BDE"?
Shizuku (2005-02-11 12:55:00) [29]to EGA23>Приложение работает целиком на ibx-компонентах, без использования BDE.
ЮЮ (2005-02-11 12:53:00) [30]>Да, если даже расширить, то просто часть колонки уйдёт за границу экрана.
В этом случае и линейка прокрутки не поможет, т.к. при дальнейшем скроллинге будет просто переход к следующему столбцу. Склоллинг, когда слева грида не начало столбца в гриде невозможен
Shizuku (2005-02-11 12:49:00) [31]У меня эта таблица одна на всю форму, а форма открывается в полноэкранном режиме
BorderStyle := bsNone;
//FormStyle := fsStayOnTop;
Left := 0;
Top := 0;
Height := Screen.Height;
Width := Screen.Width;
Плюс скрывается панель задач. И всё равно строчка целиком не видна. Расширить колонку? Так ведь не все строчки длинные... Разве что отлавливать размер самых-самых, но это сложно. Да, если даже расширить, то просто часть колонки уйдёт за границу экрана. Нужна линейка прокрутки.
Ega23 (2005-02-11 12:45:00) [32]AFAIK, стандартный TQuery всё, что больше 255 символов - считает BLOB'ом. По крайней мере мне не удавалось такие строки в грид впихнуть.
Ну а самое главное - для пользователя это серьёзное неудобство такие строки читать.
Если ты неприменно хочешь, чтобы это поле данных обязательно отображалось в гриде, то заведи "сокращённое" поле, допутим, 50 символов от исходного. И показывай уже его. А если нужно будет посмотреть всё поле целиком - делай, как msguns © посоветовал.
Я бы сделал именно так.
msguns (2005-02-11 12:35:00) [33]Расширить соотв. колонку грида
Если текст очень длинный, то, ИМХО, проще повесить окно (StayOnTop), где его отображать (например, как TDBMemo)
Юзер может переместить окно куда ему угодно или вообще закрыть.