Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2011, 13:48   #1
karapuz
Новичок
Джуниор
 
Регистрация: 27.05.2011
Сообщений: 2
Радость Stringgrid и пустые ячейки

Здраствуйте. Вообщем мне нужно что бы в Stringgride, заполненые ячейки были не доступны для редкатирования, а пустые наоборот. Определить ячейки для редактирования нужно при нажатии на клавишу (напр. button).
Помогите пожалуйста
karapuz вне форума Ответить с цитированием
Старый 27.05.2011, 14:11   #2
VVM
Форумчанин
 
Аватар для VVM
 
Регистрация: 06.06.2007
Сообщений: 282
По умолчанию

Вот вариант:

Код:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  if StringGrid1.Cells[ACol, ARow] <> '' then
    CanSelect := false
  else
    CanSelect := true;
end;
Но есть нюанс, если вышли из ячейки до того как записали все, что хотели, то войти и дописать не получится.
Не важно, как часто вы падаете. Важно, как часто вы поднимаетесь. Винс Ломбарди.
VVM вне форума Ответить с цитированием
Старый 27.05.2011, 14:16   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  CanSelect:=(StringGrid1.Cells[ACol, ARow] ='');
end;

Последний раз редактировалось SERG1980; 27.05.2011 в 14:23.
SERG1980 вне форума Ответить с цитированием
Старый 27.05.2011, 14:20   #4
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

Цитата:
Но есть нюанс, если вышли из ячейки до того как записали все, что хотели, то войти и дописать не получится.
решается массивом доступности ячеек, прoстой массив размеров с таблицу типа булеан

Код:
var CanSelectArray: array[100,100]: boolean; 
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
    CanSelect := CanSelectArray[Acol, ARow];
end;
сначала нужно конечно инициализировать, можно динамически, перед выводом таблицы на экран анализируем все ячейки если текст есть, то в массив по этому адресу пишем false, если пусто, то True
Могу лишь пнуть в нужном направлении (ну или как получится)

Последний раз редактировалось Stilet; 27.05.2011 в 14:45.
Swarog вне форума Ответить с цитированием
Старый 27.05.2011, 14:39   #5
karapuz
Новичок
Джуниор
 
Регистрация: 27.05.2011
Сообщений: 2
По умолчанию

Swarog, спасибо всё работает, только вопрос, при выводе таблице, указатель автоматически встаёт на ячейку [0,0]. Тоесть если я выбираю не доуступную для редактирования ячейку, ввожу число, то оно закидывается в ячейку [0,0]. Как это исправить?
И ещё, как закрасить выбранную ячейку? Попробовал в OnselectCell - не вышло

Последний раз редактировалось karapuz; 27.05.2011 в 14:53.
karapuz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
можно чтобы ВПР игнорировала пустые ячейки? oldjoe Microsoft Office Excel 11 20.01.2011 16:29
Динамический диапазон, допускающий пустые ячейки fired Microsoft Office Excel 13 28.07.2010 23:25
подсчитать кол-во строк в которых содержаться пустые ячейки mars56 Microsoft Office Excel 4 24.02.2010 11:17
Заполнить пустые ячейки ниже значениями из непустой ячейки ing60 Microsoft Office Excel 7 01.04.2009 04:20
пустые ячейки StasSv Microsoft Office Excel 5 22.12.2008 17:43