|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.10.2011, 15:44 | #1 |
Регистрация: 18.07.2010
Сообщений: 5
|
DBGridEh. Перенос строки в режиме редактирования
Здравствуйте, уважаемые форумчане.
Совсем недавно начал использовать этот замечательный компонент и не успел к нему ещё привыкнуть. Посему возникла трудность: Необходимо переносить длинную строку. Устанавливаю свойство DBGridEh.RowHeight в 50, для колонки естественно WordWrap. При клике на ячейку в момент перехода в режим редактирования всё отображается нормально, строки переносятся. Однако, если нажимаем Enter, или, скажем, F2, то строка переноситься не желает - отображается текст только в одну строку. В событии OnKeyDown стоит обработчик : Код:
PS. Ещё один вопрос, чтобы не создавать новую тему: Что быстрее: метод Locate или установка RecNo в датасете? |
05.10.2011, 22:47 | #2 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Может версия EhLib меньше 4.х? В 4 не наблюдается такого эффекта.
Да и с установками свойств понакручено, видимо. Зачем, например, каждый раз при нажатии Enter проверять установлен ли в Options элемент dghEnterAsTab? Какой в этом великий смысл? Не проще ли установить его один раз при разработке в True и забыть. Установка EditorMode тоже ничего не дает. Достаточно в Options присвоить элементу dgEditing значение True, dgAlwaysShowEditor = True и будет то же самое. Чтобы строки переносились нужно значение RowLines выставить в 2 (или больше), а значение RowHeight в этом случае просто добавляется к той высоте, которую имеют эти две строки (здесь RowHeight как корректировка высоты). Ширина колонки нужно выставить больше или меньше ширины по умолчанию, т.е <> 64. Тогда WordWrap здесь и роли, собственно, не будет играть - DbGridEh все равно перенесет строку по словам, если она не помещается в отведенную ширину. Причем, как в режиме отображения, так и в режиме редактирования. С RecNo можно промахнуться. Зависит от типа СУБД. Если СУБД "настольная", то можно использовать RecNo, если SQL'вская, то лучше не применять. |
06.10.2011, 09:16 | #3 |
Регистрация: 18.07.2010
Сообщений: 5
|
Попытался установить RowLines = 3, но это не дало требуемого результата.
Версия EhLib 5.02. К сожалению, установка свойства EditorMode необходима, в совокупности с Key := 0. Нужно, чтобы при первом нажатии Enter начиналось редактирование ячейки, а уже потом переход к следующим. Если не устанавливать это свойство и не обнулять Key, то при нажатии Enter будет переведён фокус на следующую ячейку. Возможно, с настройками действительно перекрутил, но создавать новый объект желания нет. Привожу настройки (взял из DFM модуля, так проще). Код:
|
06.10.2011, 10:23 | #4 | |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Цитата:
И в DFM что-то не видно установленных RowLines и RowHeight. Установки из приведенного DFM (добавлены только RowLines и RowHeight) упомянутого артефакта в работе DBGridEh не дали. Может быть мы о разном??? А может быть строки в БД с символами разделителями строк (#13#10)? --- На картинке фрагмент DbGridEh, где есть режимы отображения и редактирования с разбивкой длинного текста на строки. Последний раз редактировалось Прик; 06.10.2011 в 10:40. Причина: Картинка |
|
06.10.2011, 12:09 | #5 |
Регистрация: 18.07.2010
Сообщений: 5
|
Спасибо большое! dgAlwaysShowEditor действительно помог.
Поскольку мне, на самом деле, не нужно, чтобы постоянно был режим редактирования, вставил добавление опции в событие DBGridEh.OnKeyDown и удаление опции в событии DataSet.BeforeScroll. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Взять данные из ячейки компонента DBGridEh в режиме [dsInsert] | AndreyK | БД в Delphi | 0 | 16.05.2011 16:34 |
DBGridEh: перенос строки в полях String | М_Виктор | Компоненты Delphi | 2 | 23.03.2010 14:04 |
TWebBrowser - убрать Border при режиме редактирования | RIO | Общие вопросы Delphi | 0 | 05.01.2010 00:53 |
ошибка база данных не находится в режиме вставки или редактирования | samouelson | БД в Delphi | 2 | 17.12.2009 00:24 |
таблица не в режиме редактирования. что делать? | Mitron | БД в Delphi | 5 | 12.05.2007 11:06 |