Главная страница
    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.044 c
1-1173694564
mavrtuva
2007-03-12 13:16
2007.05.06
Quantum Grid


15-1175797825
alexsis
2007-04-05 22:30
2007.05.06
Безобразие!


2-1176796522
Gentos
2007-04-17 11:55
2007.05.06
Oracle8 - cLOB


6-1162829430
NetUser
2006-11-06 19:10
2007.05.06
Пакет IP


2-1176817310
Gentos
2007-04-17 17:41
2007.05.06
DBImage1: TDBImage; - с какой компонентой проще всего работать ?





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