![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как выделить часть текста в ячейке DBGrida? [D6, IB6.x]
Таня © (2002-09-20 10:17:00)Здравствуйте! Пытаюсь сделать автоподстановку подходящих значений при наборе начальных символов в lookup поле DBGrida. Как найти, вывести - понятно; непонятно, как выделить предлагаемую часть значения. Я правильно понимаю, что нужно вычислять координаты выделямого прямоугольника и устанавливать на него фокус? Каким образом тогда получить координаты текущей ячейки? Может есть путь попроще? Подскажите,пожалуйста!
Я знаю, что эта вещь реализована в DBGridEh, но уменя его пока нет, других подходящих компонент я не нашла.
Помогите, плз!
Таня (2002-09-20 11:54:00) [1]Спасибо всем большое!
ЮЮ (2002-09-20 11:50:00) [2]У автора:
http://www.farpost.com/personal/dmitryb/RUS/downloads.htm
Таня (2002-09-20 11:44:00) [3]To ЮЮ
> советую обратиться к исходникам DBGridEh и в нём добиваться нужной функциональности
Да, видимо, это наиболее разумный вариант. Не подскажете, где их можно быстро взять?
Johnmen (2002-09-20 11:42:00) [4]type
TMyDBGrid = class(TDBGrid);
...
TMyDBGrid(DBGrid1).InplaceEditor
Johnmen (2002-09-20 11:34:00) [5]Виноват...Доступ к InplaceEditor реализован в TRxDBGrid...
ЮЮ (2002-09-20 11:31:00) [6]TCustomGrid
protected
property InplaceEditor: TInplaceEdit read FInplaceEdit;
Естественно, оно protected, т.к. редактирование ячеек - это "внутреннее" дело Grida, а чтобы Grid должным образом поступал и пишут Наследника. Поэтому и советую обратиться к исходникам DBGridEh и в нём добиваться нужной функциональности.
Wolf226 (2002-09-20 11:28:00) [7]InplaceEditor - protected.
Пиши свой компонент наследник TDBGrid (или TCustomDBGrid)
и получишь к нему доступ.
Таня (2002-09-20 11:10:00) [8]To Johnmen
Было бы замечательно, но у DBGrid я не нашла свойства InplaceEditor. Видимо, я чего-то не понимаю :(
Johnmen (2002-09-20 10:59:00) [9]...а именно :
with DBGrid1.InplaceEditor do begin;
SelStart:=0; SelLength:=Length(FindStr);
...
ЮЮ (2002-09-20 10:53:00) [10]>Нет, вводить надо прямо в ячейку DBGrida
При редактировании в ячейках грида на самом деле используется InplaceEditor,в сам грид ничего не вводится. Скачай-ка всё-таки EhLib и посмотри как там всё устроено.
Johnmen (2002-09-20 10:53:00) [11]Именно так ЮЮ © (20.09.02 10:30)
Таня (2002-09-20 10:47:00) [12]To Prooksius:
Нет, вводить надо прямо в ячейку DBGrida. Про SelStart/SelLength знаю, они только для TEdit и ComboBox - не проходит
ЮЮ (2002-09-20 10:44:00) [13]Только каретка будет в конце выделенного блока. :-(
Prooksius (2002-09-20 10:35:00) [14]Эти начальные символы ты вводишь в TEdit или наследник от него?
Если да, то тебе нужен Edit1.SelStart/SelLength
ЮЮ (2002-09-20 10:32:00) [15]Нет не пойдёт :-(
ЮЮ (2002-09-20 10:30:00) [16]>как выделить предлагаемую часть значения
SelStart,SelLength