Главная страница
    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
2-1176640357
alex125
2007-04-15 16:32
2007.05.06
перестановка столбцов в матрице


1-1173790777
dreamse
2007-03-13 15:59
2007.05.06
Подскажите как получить PID процеса по заголовку окна ?


4-1165573534
Repavel
2006-12-08 13:25
2007.05.06
Как узнать хэндл активного окна


11-1155058319
Stals
2006-08-08 21:31
2007.05.06
Как прицепить словарь от Microsoft Office


3-1171534913
dzhagr1
2007-02-15 13:21
2007.05.06
Связь таблиц в database desktop





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский