|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Запрет ввода данных в фиксированную ячейку StringGrid
Здравствуйте!
Как запретит ввод данных в фиксированную ячейку? Так сделал. Код:
if (ARow=21)and(ACol=1) then StringGrid1.Options:=StringGrid1.Options-[goEditing] |
#2
|
||||
|
||||
А если в KeyPress написать:
Код:
if (StringGrid1.Row = 21) and (StringGrid1.Col = 1) then Key := #0; Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#3
|
|||
|
|||
Цитата:
Только у меня по событию RadioGroup3Click. Т. е не должно вводиться в ячейку, только после нажатия на кнопку. А в RadioGroup3Click не работает. |
#4
|
||||
|
||||
Вы почти правильно сделали:
Код:
if (ARow=21)and(ACol=1) then StringGrid1.Options:=StringGrid1.Options-[goEditing] else StringGrid1.Options:=StringGrid1.Options+[goEditing] Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
Цитата:
А условие после else мне не надо. Надо чтобы при нажатии на кнопку нельзя было ввести только в (ARow=21)and(ACol=1). Последний раз редактировалось Maks19, 23.09.2019 в 19:32. |
#6
|
||||
|
||||
Цитата:
Код:
if (StringGrid1.Row = 21) and (StringGrid1.Col = 1) and (RadioGroup1.ItemIndex = 2) then Key := #0; Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#7
|
|||
|
|||
Цитата:
Код:
procedure TForm1.RadioGroup3Click(Sender: TObject); var ACol, ARow: Longint; RowCount:integer; Key:char; begin case RadioGroup3.ItemIndex of 0: begin //выражения end; 1: begin //выражения if (StringGrid1.Row = 18) and (StringGrid1.Col = 1) then Key := #0; end; end; end; Последний раз редактировалось Maks19, 25.09.2019 в 00:10. |
#8
|
||||
|
||||
Всё правильно, за исключением того, что переменная Key в твоей процедуре RadioGroup3Click никакого отношения к StringGrid не имеет так как она является локальной. Перенеси свой код в процедуру KeyPress StringGrid'a и все будет у тебя работать. Примерно это будет выглядеть так:
Код:
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char); begin case RadioGroup3.ItemIndex of 0: begin //выражения end; 1: begin //выражения if (StringGrid1.Row = 18) and (StringGrid1.Col = 1) then Key := #0; end; end; end; Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |