Вниз
Скачать: 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.012 c
1-58645
Olivka
2003-09-05 09:42
2003.09.18
как сделать, чтобы программа перезапустила саму себя


1-58704
Юля П
2003-09-08 10:06
2003.09.18
Как раскрасить DBGrid?


1-58726
Xtz
2003-09-07 21:01
2003.09.18
Как использывать таймер в консольном приложении и без QExtCtrls


9-58505
GameBoy
2002-12-20 19:14
2003.09.18
Полупрозрачность


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




   Наверх