Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.07.28;
Скачать: [xml.tar.bz2];

Вниз

Операции с данными в ячейках StringGrid а   Найти похожие ветки 

 
adept ©   (2012-11-27 23:18) [0]

Всем доброго времени суток !
Столкнулся с проблемой и не могу понять почему не работает

procedure TForm1.Timer1Timer(Sender: TObject);
var
Nac,dh,dh1,dh2,dh3,dh4,dh5,dh6,dh7: string;
//strc прописана глобально как интегер, переменной присваивается значение 1 при создании формы
begin
   Nac:=StringGrid1.Cells[0,strc];  //присваеваем переменной начинку первой строки
   dh1:=StringGrid1.Cells[0,strc][1]; // присваивание переменной значения 1-го символа с проверяемой ячейки
   dh2:=StringGrid1.Cells[0,strc][2]; // присваивание переменной значения 2-го символа с проверяемой ячейки
   dh3:=StringGrid1.Cells[0,strc][3];  //и т.д.
   dh4:=StringGrid1.Cells[0,strc][4];
   dh5:=StringGrid1.Cells[0,strc][5];
   dh6:=StringGrid1.Cells[0,strc][6];
   dh7:=StringGrid1.Cells[0,strc][7];
   dh:=dh1 + dh2 + dh3 + dh4 + dh5 + dh6 + dh7;  //обьеденяем значения воедино
   showmessage(dh);                         //смотрим че вышло
       if Nac="" Then strc:=1 else              // если начинка пустая - просто переводим счётчик на начало
           begin                                //если начинка чем-то заполнена - то работаем дальше
               if dh="0д. 0ч."  then            //проверятеся столбик СтрингГрида, в котором происходит обратный отсчёт
                   begin                        //если до выполнения задачи осталось 0 дней и 0 часов  - проверяем минуты и выдаём сообщение (последнее пока не надо, тут первое не пашет ))))
                       showmessage("0д. 0ч.");  //если нашло - показало что нашло (работает)
                       strc:=strc + 1;          //переход на след строку
                   end
               else
                   begin
                       strc:=strc + 1;
                   end;
           end;
end;


при первом "прохождении круга" всё прекрасно работает и всё показывает, однако при переходе "на второй круг" вылетает ошибка:
Project Project1.exe raised exception class EAccessViolation with message "Access violation at address 004756DF in module "Project1.exe". Read of address 00000000". Process stopped. Use Step or Run to contineu.

И выделяется строка:
dh1:=StringGrid1.Cells[0,strc][1]

Уж не осудите если что не так, новичек я тут :)


 
Игорь Шевченко ©   (2012-11-27 23:36) [1]

надо посмотреть, чему в момент ошибки равно strc и не превышает ли оно число строк - 1 в гриде


 
adept ©   (2012-11-27 23:42) [2]


> надо посмотреть, чему в момент ошибки равно strc и не превышает
> ли оно число строк - 1 в гриде

Спасибо!!!
вставил строку:
showmessage(IntToStr(strc));
перед проблемной строкой, оказывается оно дальше копает вместо того чтобы по кругу пойти!
Естественно находит пустую ячейку и в то время как пытается взять первый символ пустой ячейки - вылетает.

Все гениальное просто... )

еще раз спасибо !!


 
adept ©   (2012-11-27 23:45) [3]

гм... проблема была не в этом, а в том, что присваивание символов надо было начинать после проверки, что символы вообще есть, а не то неё.....


 
Германн ©   (2012-11-28 01:38) [4]


> adept ©   (27.11.12 23:45) [3]
>
> гм... проблема была не в этом, а в том, что присваивание
> символов надо было начинать после проверки, что символы
> вообще есть, а не то неё.....

Проблема была скорее всего именно в "этом".


 
O'ShinW ©   (2012-11-28 09:11) [5]

Время запуска задания надо хранить как время, а не как строки в стринггриде.

ветер - причина
Качания деревьев
не наоборот



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2013.07.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
2-1354379243
Аскалот
2012-12-01 20:27
2013.07.28
Неопознанная ошибка


2-1354073820
Abcdef123
2012-11-28 07:37
2013.07.28
Как объявить свойство с дополнительным параметром?


2-1354114312
AntonMos
2012-11-28 18:51
2013.07.28
Fastreport


15-1362341410
Хыхы
2013-03-04 00:10
2013.07.28
Singleton в Delphi


3-1291295803
svb
2010-12-02 16:16
2013.07.28
Одна таблица или много маленьких





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский