Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.18;
Скачать: CL | DM;

Вниз

запрет на редактирование в StringGrid   Найти похожие ветки 

 
Алексей Петухов   (2003-09-05 11:26) [0]

Здравствуйте, мастера.
Не подскажете как в StringGrid-е запретить редактирование одних колонок или ячеек, а других - разрешить?


 
Sandman25 ©   (2003-09-05 11:27) [1]

При заходе в ячейку устанавливайте ReadOnly (или как его там) в нужное значение.


 
Skier ©   (2003-09-05 11:27) [2]

>Алексей Петухов (05.09.03 11:26)
TStringGrid.Options


 
Sandman25 ©   (2003-09-05 11:28) [3]

StringGrid.Options +/- [goEditing]


 
Алексей Петухов   (2003-09-05 11:29) [4]


> Sandman25 © (05.09.03 11:27) [1]
> При заходе в ячейку устанавливайте ReadOnly (или как его
> там) в нужное значение.

Какое событие?


 
ZEE ©   (2003-09-05 11:30) [5]

>TStringGrid.Options
+/- goEditing


 
ZEE ©   (2003-09-05 11:30) [6]

>Какое событие?
OnSelectCell


 
Алексей Петухов   (2003-09-05 11:31) [7]


> goEditing

Вопрос прочтите, повнимательней пожалуйста.


 
Алексей Петухов   (2003-09-05 11:32) [8]

OnSelectCell
при переходе по Tab не вызывается


 
Sandman25 ©   (2003-09-05 11:32) [9]

[7] Алексей Петухов (05.09.03 11:31)

А подумать?
В OnSelectCell изменяем Options.


 
ZEE ©   (2003-09-05 11:33) [10]

>Алексей Петухов (05.09.03 11:31) [7]
>Вопрос прочтите, повнимательней пожалуйста.
из вопроса:
>запретить редактирование одних колонок или ячеек, а других - разрешить

ну так запретить
StringGrid.Options:=StringGrid.Options-[goEditing]
а разрешить
StringGrid.Options:=StringGrid.Options+[goEditing]


 
ZEE ©   (2003-09-05 11:35) [11]

>Алексей Петухов (05.09.03 11:32) [8]
>OnSelectCell
>при переходе по Tab не вызывается

тогда OnSelectCell + OnKeyPress


 
Sandman25 ©   (2003-09-05 11:35) [12]

[8] Алексей Петухов (05.09.03 11:32)

Вызывайте OnSelectCell и из OnEnter.


 
Sandman25 ©   (2003-09-05 11:37) [13]

[11] ZEE © (05.09.03 11:35)

Для Tab внутри грида вызывается (если goTabs установлен, конечно), не вызывается при переходе в грид из другого контрола.


 
Алексей Петухов   (2003-09-05 11:38) [14]


> ну так запретить
> StringGrid.Options:=StringGrid.Options-[goEditing]
> а разрешить
> StringGrid.Options:=StringGrid.Options+[goEditing]

Я использовал подобное, но отдельно надо отрабатывать получение фокука StringGridom, т.к. при получении фокуса OnSelectCell не происходит, расчитывал, что межет есть событие, охватывающие и получение фокуса тоже.


 
ZEE ©   (2003-09-05 11:39) [15]

OnEnter


 
Sandman25 ©   (2003-09-05 11:40) [16]

[14] Алексей Петухов (05.09.03 11:38)

При возврате фокуса обратно на грид текущая ячейка не изменяется. Поэтому можно вызвать OnSelectCell из OnCreate, или просто установить Options в Design time в зависимости от нужного для первой ячейки первой строки.


 
Алексей Петухов   (2003-09-05 11:43) [17]


> Вызывайте OnSelectCell и из OnEnter.

о, наверно так и надо.
Пойду воздухом подышу.


 
A_N_D ©   (2003-09-05 12:05) [18]

procedure TMainForm.TStringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if ((Sender as TStringGrid).Col=NotEditCol) and ((Sender as TStringGrid).Row=NotEditRow) then Abort;
end;


 
Sandman25 ©   (2003-09-05 12:08) [19]

[18] A_N_D © (05.09.03 12:05)

А если user мышкой в контекстном меню выберет "вставить" или "удалить"?


 
BOA_KAA ©   (2003-09-05 12:16) [20]

Посмотрите внимательно OnSetEditText, OnGetEditText
Запоминайте старое значение и на каждую попытку отредактировать возвращайте его



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

Текущий архив: 2003.09.18;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.017 c
14-58903
sagchat
2003-08-29 11:56
2003.09.18
The Bat


3-58561
eds
2003-08-27 11:55
2003.09.18
COMMIT или COMMITRETAINING ???


3-58591
Jini
2003-08-23 20:29
2003.09.18
Clarion


1-58657
McSimm2
2003-09-05 08:58
2003.09.18
Вызов процедуры


14-58869
Вася Добрый
2003-08-29 16:11
2003.09.18
Что такое WAREZ???