Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];

Вниз

DBgrid проблема при перемещение курсором по полям   Найти похожие ветки 

 
ksa2002   (2006-07-19 11:05) [0]

В грид выводятся значения , одно из полей  открыто для редактирования. Если пользователь  жмёт мышкой то я определяю имя поля и дальше блокирует редактирование или нет.
А вот если я нахажусь уже в ячейки где можно редактировать и перемещаюсь на поле которое "должно быть запрещенно" он переходит в режим редактирования если нажать дальше, то редактирования пропадёт(всё в порядке). При выборе мышкой всё работет корректно.
Для опеределения номера поля dbgrid1.SelectedIndex.
События проверял как грида так и датасета (эдиты и апдэйти)

Почему при перемещение именно курсором (клавишами) происходит так?  Какием событием можно отловить такое перемещение?
 
PS при первом  перемещение на  запрещённое поле  не срабатывает событие.


 
Sergey13 ©   (2006-07-19 11:18) [1]

А не правильнее будет ловить все это в BeforEdit датасета? И/или определить нужные поля как нередактируемые.


 
ksa2002   (2006-07-19 11:30) [2]

хех BeforEdit датасета заработало ) ...хотя до этого вообще молчало странно )) мож я чего напортачил )

Спасибо.


 
ksa2002   (2006-07-19 12:44) [3]

BeforEdit датасет
действительно отловил данный момент, но всеравно разрешил вносить значения. Хотя в свойствах (событие датасет) грида я прописал после того как он опредилил поле, запрет на  редактирование (если я тут же перемещаюсь на запись выше или ниже то всё работает).


 
Desdechado ©   (2006-07-19 12:49) [4]

Field.ReadOnly


 
ksa2002   (2006-07-19 13:00) [5]

procedure TForm6.IBDataSet1BeforeEdit(DataSet: TDataSet);
begin
memo1.text:=memo1.text+"*1*"+ inttostr(dbgrid1.SelectedIndex);
if ((DBGrid1.Fields[DBGrid1.SelectedIndex].FullName)="MIN_KOL")  then
     DBGrid1.ReadOnly:=false
   else
      DBGrid1.ReadOnly:=true;

end;

ноль эмоций ..всреавно продолжает вводить в поле значения, при переводе на другое поле таблицу блокирует


 
Desdechado ©   (2006-07-19 13:05) [6]

Установка свойства поля делается заранее, сразу после открытия датасета, а не перед попыткой редактирования.


 
ksa2002   (2006-07-19 13:12) [7]

а как тогда мне поступить?
чтобы была возможность редактировать только одно поле (из нескольких)??? в гриде


 
Desdechado ©   (2006-07-19 13:19) [8]

[6] повторить для всех блокируемых полей


 
Sergey13 ©   (2006-07-19 13:22) [9]

> [7] ksa2002   (19.07.06 13:12)

Если запрос датасета не меняется, то вообще все можно в дизайнере сделать.


 
ksa2002   (2006-07-19 13:35) [10]

[6] хех а я думал что так тока стаичные поля можно ))) ..точно можно и так установить )))
[9] в том то  и дело что запрос меняется в зависимости от данных


 
Sergey13 ©   (2006-07-19 13:50) [11]

> [10] ksa2002   (19.07.06 13:35)

А как он меняется? Разные таблицы учавствуют с разными полями? Тогда как ты обращаешься к ним по конкретному имени поля? Если меняется только WHERE секция, то можно в дизайнере делать.


 
Плохиш ©   (2006-07-20 10:56) [12]


> ksa2002   (19.07.06 13:12) [7]
> а как тогда мне поступить?

Есть такая волшебная процедура, Abort называется. Неужели про неё в справке по OnBeforeEdit не написано?



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.041 c
2-1157114544
VitV
2006-09-01 16:42
2006.09.24
FastReport-подсчёт количества строк


2-1157193706
SergP.
2006-09-02 14:41
2006.09.24
Почему компилятор показывает Hint?


15-1157100888
Dbn
2006-09-01 12:54
2006.09.24
С праздником, друзья!


2-1157264642
TimScorp
2006-09-03 10:24
2006.09.24
Создание отчета


1-1155311553
ph0sgen
2006-08-11 19:52
2006.09.24
DLL без SysInit.pas и System.pas





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