Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Delphi | Проблем с изменяемостью ячеек

Ответить
Настройки темы
Delphi - [решено] Delphi | Проблем с изменяемостью ячеек

Новый участник


Сообщения: 27
Благодарности: 1

Профиль | Отправить PM | Цитировать


Ребза, нужен компетентный совет. Проблема такова: есть класс StringGrid1, то бишь табличка на форме. По умолчанию параметр (поле) goEditing (внутри Options) стоит в значении True, то есть ВСЕ ячейки можно изменять. Мне надо, чтобы часть ячеек, начиная с некоторой строчки, нельзя было редактировать. А все предыдущие - можно. Как это реализовать, а?

Отправлено: 01:36, 15-10-2006

 

Аватара для detrin

Ветеран


Сообщения: 540
Благодарности: 42

Профиль | Отправить PM | Цитировать


Попробуй данный код:
Код: Выделить весь код
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
if acol=2 then stringgrid1.Options:=StringGrid1.Options - [goEditing]
          else stringgrid1.Options:=StringGrid1.Options + [goEditing];
end;
В данном коде недоступна к редактированию вторая колонка.

-------
Лучше ничего не делать, чем делать ничего.

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:47, 15-10-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 27
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо за совет. С Вашей помощью я решил эту проблему так:
Код: Выделить весь код
procedure TForm2.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
var i:integer;  
begin
  for i := 1 to n do
    if ARow = i then stringgrid1.Options := StringGrid1.Options + [goEditing];
  for i := n + 1 to 2 * n + 4 do
    if ARow = i then stringgrid1.Options := StringGrid1.Options - [goEditing];
end;

Отправлено: 15:23, 15-10-2006 | #3


Аватара для detrin

Ветеран


Сообщения: 540
Благодарности: 42

Профиль | Отправить PM | Цитировать


Ну цикл на самом деле здесь лишний.
Достаточно было сделать так:
Код: Выделить весь код
procedure TForm2.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
    if (ARow > 0) and (ARow <= n) then stringgrid1.Options := StringGrid1.Options + [goEditing];
    if (ARow > n) and (ARow <= 2*n+4) then stringgrid1.Options := StringGrid1.Options - [goEditing];
end;
А цикл только замедляет выполнение программы.

P.S. Спасибо в карман не положишь
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:53, 15-10-2006 | #4


Новый участник


Сообщения: 27
Благодарности: 1

Профиль | Отправить PM | Цитировать


Ага, еще раз thanx, переделал.
Цитата:
P.S. Спасибо в карман не положишь
Если имеешь в виду, что поставить тебе "полезное сообщение", то уже сделал, причем 2 раза.

Отправлено: 20:47, 15-10-2006 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Delphi | Проблем с изменяемостью ячеек

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Не работает заливка ячеек в MS Excel 2003 ondo Хочу все знать 5 09-01-2018 22:16
Delphi - Раскраска ячеек StringGrid pirojok750 Программирование и базы данных 10 26-10-2009 17:26
[решено] Считать IP адресс в массив из четырёх ячеек FlatX007 AutoIt 3 15-09-2009 11:45
.NET - [решено] Получение массива ячеек для объединения Delirium Программирование и базы данных 10 29-07-2009 06:49
[решено] Сравнение ячеек в БД (SQL или access) sidorova Программирование и базы данных 12 27-08-2006 13:21




 
Переход