Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

StringGrid как запретить редактирование в определенном столбце? [D7, WinXP]


MadGhost ©   (2005-01-24 21:44:00) 

в StringGrid есть два столбца, один столбец значение, второй параметр, так вот, как сделать так чтобы в первом столбце запретить редактирование, а во втором можно было?

заранее спасибо.


MadGhost   (2005-01-24 22:40:00) [1]

> begin...end ©   (24.01.05 22:03) [2]

вау :) при большущее спасибо :), большего и желать нельзя :) тот самый компонент который нужен :) и без геморою.
спасибо.


begin...end   (2005-01-24 22:03:00) [2]

> MadGhost ©   (24.01.05 21:44)

Обрабатывайте событие TStringGrid.OnSelectSell и в зависимости от номера столбца выбираемой ячейки включайте/исключайте из свойства TStringGrid.Options значение goEditing.

Пример:

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
 ARow: Integer; var CanSelect: Boolean);
begin
 with (Sender as TStringGrid) do
   if (ACol = 1) and (goEditing in Options) then
     Options := Options - [goEditing]
   else if (ACol = 2) and not (goEditing in Options) then
     Options := Options + [goEditing]
end


Кстати, если таблица только из этих двух столбцов и состоит, то лучше заменить её на компонент TValueListEditor - он как раз для таких целей и предназначен.

> [1] dimaxx ©   (24.01.05 21:56)

После исключения goEditing обработчик TStringGrid.OnSetEditText, вероятно, больше вызываться не будет.


dimaxx   (2005-01-24 21:56:00) [3]

Через OnSetEditText

procedure(Sender: TObject; ACol, ARow: Longint; const Value: String) of object;

Проверяем ACol. Если ACol=2, то делаем добавление в Options параметра goEditing. Иначе - убираем этот параметр.


Наверх

Титульная страница Поиск, карта сайта Написать письмо