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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2009, 13:27   #1
ARXangel
Пользователь
 
Регистрация: 01.02.2008
Сообщений: 24
По умолчанию Как вывести сообщение когда в столбце уже заполнена последняя ячейка StringGrid

Привет всем!
У меня есть кнопка по нажатию на которую, выполняется вот такой код:

Код:
if (RadioGroup1.ItemIndex>-1)
       and (RadioGroup1.ItemIndex<StringGrid1.RowCount-1) then
       begin
            StringGrid1.Cells[RadioGroup1.ItemIndex,StringGrid1.Row]:=edit1.text;
            StringGrid1.Row:=StringGrid1.Row+1;
Когда заполнение из edit1 подходит к концу выдает ошибку.
Как сделать так чтобы когда подходило к последней ячейке выводилось сообщение что ячеек уже нет.
Заранее спасибо!
Если вы хотите защитить вашу систему от «дурака», то всегда найдется один такой, изобретательность которого вы и предвидеть не могли.
ARXangel вне форума Ответить с цитированием
Старый 17.03.2009, 13:44   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Последний ряд (строка) - это ряд с индексом StringGrid1.RowCount-1.
Поэтому должно быть
Код:
and (RadioGroup1.ItemIndex<=StringGrid1.RowCount-1) then
А вот этот вопрос
Цитата:
Как сделать так чтобы когда подходило к последней ячейке выводилось сообщение что ячеек уже нет.
поставлен весьма невнятно...
mihali4 вне форума Ответить с цитированием
Старый 17.03.2009, 14:05   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
поставлен весьма невнятно
Вообще вкорне все неверно

Я могу такое посоветовать:
Код:
for i:=начальный индекс to конечный индекс do
 StringGrid.Cols[RadioGroup1.ItemIndex].add(Edit1.text);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.03.2009, 16:38   #4
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

Код:
if (RadioGroup1.ItemInde=StringGrid1.RowCount-1) then ShowMessage ('таблица закончилась');
попробуй это вставить для сообщения. после цикла обработки.
или
Код:
try
if (RadioGroup1.ItemIndex>-1)
       and (RadioGroup1.ItemIndex<StringGrid1.RowCount-1) then
       begin
            StringGrid1.Cells[RadioGroup1.ItemIndex,StringGrid1.Row]:=edit1.text;
            StringGrid1.Row:=StringGrid1.Row+1;
except
   ShowMessage ('таблица закончилась')
end;
тут намеренно осталась ошибка цикла, для генерации исключения.
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.

Последний раз редактировалось IliaIT; 17.03.2009 в 16:43.
IliaIT вне форума Ответить с цитированием
Старый 18.03.2009, 07:55   #5
ARXangel
Пользователь
 
Регистрация: 01.02.2008
Сообщений: 24
По умолчанию

Цитата:
поставлен весьма невнятно...
Как вывести сообщение когда в столбце уже заполнена последняя ячейка?
Если вы хотите защитить вашу систему от «дурака», то всегда найдется один такой, изобретательность которого вы и предвидеть не могли.
ARXangel вне форума Ответить с цитированием
Старый 18.03.2009, 08:24   #6
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
Когда заполнение из edit1 подходит к концу выдает ошибку.
Это как "к концу" ? Обрабатывается сообщение Edit`а - при его заполнении отрабатывается приведенный код ? Или как ?
И еще. При увеличении Row нужно проводить контроль не закончились ли строки вообще ...
Код:
if StringGrid1.Row < (StringGrid1.RowCount-1) then StringGrid1.Row := StringGrid1.Row + 1 else ShowMessage('Строк больше нету !');
Хотя вверху уже дали ответы по теме ...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести содержимое StringGrid на принтер именно в виде таблицы program123 Компоненты Delphi 4 14.02.2009 16:24
Как вывести сообщение типа "внимание" при удалении записи из БД Alex_Sokolov Помощь студентам 7 06.01.2009 13:50
Как вывести таблицу StringGrid на печать? graphoman Компоненты Delphi 1 07.01.2008 22:19
Как узнать когда браузер скачивает, а когда нет? iPod Работа с сетью в Delphi 1 07.05.2007 15:16
Как в С++ вывести(записать ) информацию в файл, когда инфа находится в методе класса? Artur_cod Общие вопросы C/C++ 1 06.05.2007 00:34