Текущий архив: 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.48 MB
Время: 0.007 c