Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.013 c
7-58954
Volodymyr
2003-06-18 20:14
2003.09.18
com-порт... :)


4-58979
DimaS
2003-07-17 13:42
2003.09.18
Как проинсталлировав файл шрифта, затем что то им написать?


1-58684
leonid-asup
2003-09-04 18:02
2003.09.18
Нужна константа, переключение на укр. язык.


1-58743
alextim
2003-09-06 18:29
2003.09.18
интерфейс как в outlook


3-58520
Петрович
2003-08-28 11:57
2003.09.18
Как после SQL запроса




   Наверх