Форум: "Начинающим";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
ВнизDBGrid-блокировка ввода текста с клавиатуры Найти похожие ветки
← →
vitv © (2007-04-13 09:54) [0]Есть DBGrid, значения которого заполняются всплывающими меню или листбоксами. Возможно ли заблокировать ввод с клавиатуры в определённый столбцы?
← →
Desdechado © (2007-04-13 11:43) [1]TColumn.ButtonStyle
или лукапные поля использовать
← →
vtiv (2007-04-13 11:54) [2]Я использую лукапные поля, но ввод текста всё равно возможен.
← →
Сергей М. © (2007-04-13 12:03) [3]
> vtiv
У тебя есть событие OnCellClick с параметром Column.
В его обработчике разрешай или запрещай контролы в колонке Column.
← →
Desdechado © (2007-04-13 12:05) [4]да ну?
← →
vtiv (2007-04-13 12:10) [5]Сергей М. © (13.04.07 12:03) [3]
> vtiv
У тебя есть событие OnCellClick с параметром Column.
В его обработчике разрешай или запрещай контролы в колонке Column.
Я это всё сделал и всё работает ОК. Но проблема в том, что я не знаю как запретить ввод руками с клавиатуры.
← →
Desdechado © (2007-04-13 12:15) [6]И как ты в лукапные поля что-то вводишь?
← →
Сергей М. © (2007-04-13 12:18) [7]
> vtiv (13.04.07 12:10) [5]
Если контрол запрещен, то интерактивный ввод в него, хоть с клавиатуры хоть еще откуда-то, невозможен по определению.
← →
vitv © (2007-04-13 12:40) [8]Desdechado © (13.04.07 12:15) [6]
И как ты в лукапные поля что-то вводишь?
var n:integer;
begin
n:=0;
if DBGrid11.Columns.Count>0 then
begin
while DBGrid11.Columns[n].FieldName<>"List" do
inc(n);
while not DataModule2.IBQuery1.Eof do with
DBGrid11.Columns[n].PickList do
begin
DBGrid11.Columns[n].PickList.Clear;
DataModule2.IBQuery1.Next;
end;
DataModule2.IBQuery1.Close;
DataModule2.IBQuery1.Open;
end;
while DBGrid11.Columns[n].FieldName<>"List" do
inc(n);
while not DataModule2.IBQuery1.Eof do with
DBGrid11.Columns[n].PickList do
begin
add(DataModule2.IBQuery1List.AsString);
DataModule2.IBQuery1.Next;
end;
DataModule2.IBQuery1.Close;
← →
Desdechado © (2007-04-13 12:54) [9]С каких пор пиклист стал называться лукапным полем?
Справку почитай по ftLookup и Lookup Fields
← →
vitv © (2007-04-14 10:10) [10]Почитал. Но решил сделать так:
Кинул на форму DBLookupComboBox и при отрисовке ячейки вызываю:
procedure TForm1.DBGrid11DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
if (gdFocused in State) then
begin
if (Column.FieldName = "list") then
DBLookupComboBox1.Left := Rect.Left+Test.DBGrid11.Left;
DBLookupComboBox1.Top :=Rect.Top +Test.DBGrid11.Top;
DBLookupComboBox1.Width := Column.Width+5;
DBLookupComboBox1.Visible := True;
end;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.045 c