![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехват нашатия клавишь [D7, WinXP]
VEZ © (2005-11-11 14:35:00)Есть потомок стринггрида, где добавлен комбобокс, нужно запретить вводить текст в этот комбобокс, и позволить только выбирать значения из списка, я конечно может быть сделал криво, но решил перехватывать нашатые клавиши присваивать им код 0, что собственно не катит скажем с клавишей бэкспэйс, может кто знает как обойти.
Leonid Troyanovsky (2005-11-11 16:38:00) [1]
> function TChannelGrid.CreateEditor: TInplaceEdit;
> begin
> Result := TInplaceEditList.Create(Self);
> (Result as TInplaceEditList).OnGetPickListitems := FOnGetPickListItems;
> end;
А если конструктор дополнить:
HandleNeeded;
SetWindowLong(..); // not tested
--
Regards, LVT.
VEZ (2005-11-11 16:18:00) [2]Ну это просто стиль ячейки грида, PickList называется, в Rx гриде можно задавать это напрямую, или же в обычном гриде писать потомка
function TChannelGrid.CreateEditor: TInplaceEdit;
begin
Result := TInplaceEditList.Create(Self);
(Result as TInplaceEditList).OnGetPickListitems := FOnGetPickListItems;
end;
function TChannelGrid.GetEditStyle(ACol, ARow: Integer): TEditStyle;
begin
if ACol = 2 then
Result := esPickList
else
Result := inherited GetEditStyle(ACol, ARow);
end;.
MBo (2005-11-11 15:58:00) [3]Насколько я понимаю, от того, что комбобокс (если это настоящий комбобокс) куда-то там встроен, он не перестает быть комбобоксом с вытекающими отсюда свойствами
VEZ (2005-11-11 15:04:00) [4]Дак помоему в комбобоксе, встроенном в стрингрид нельзя обращаться к его свойствам, это просто вид колонки грида, и обращаешся к нему по Cells, если бы так можно было то проблем бы таких вообще не возникло.
MBo (2005-11-11 14:46:00) [5]Посмотри на свойство Tcombobox.style