Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
6-1162736558
SHEI'TI
2006-11-05 17:22
2007.05.06
Отключить картинки в WebBrowser


15-1176046522
Kerk
2007-04-08 19:35
2007.05.06
Прудников


15-1176068520
SerJaNT
2007-04-09 01:42
2007.05.06
Компьютер не включается


2-1176831228
Riply
2007-04-17 21:33
2007.05.06
CreateNamedPipe. Использование OutBufferSize и InBufferSize.


1-1173274283
alexey_mas
2007-03-07 16:31
2007.05.06
MDI интерфейс





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский