Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
14 / 14 / 13
Регистрация: 08.04.2012
Сообщений: 113
1

Ошибка при выходе из программы и неправильно происходит процедура

07.05.2014, 05:04. Показов 741. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вылетает ошибка после выполнения процедуры
при условии что функция ThisTest:boolean возвращает флаг в True

Ошибка при выходе из программы и неправильно происходит процедура


Во вложениях окно Debugger'a(Или как он правильно называется...)
а при False
Delphi
1
OrderTest:TStringList
Заполнен он подобно:
Delphi
1
2
For i:=1 to 10 do
  OrderTest.Add(IntToStr(i));
После чего все эти 10 записей перемешаны.
В общем когда флаг в False
То
Delphi
1
2
3
TestNow:=StrToInt(OrderTest[0]);
OrderTest.Delete(0);
ShowMessage(IntToStr(TestNow));
(Эта часть кода служит для отладки)
Возвращает не 10 разных цифр а всего 9
Собственно сама процедура:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
procedure TForm2.sButton1Click(Sender: TObject);
var
  mark:string;
begin
  if ThisTest then
    begin
      if sRadioGroup1.ItemIndex > -1 then
      if sRadioGroup1.Items[sRadioGroup1.ItemIndex]=GetRigthAnswer(sRadioGroup1.Caption, DataModule3.ADOOperation) then
        inc(rigthanswers);
      if (OrderTest.Count-1)>0 then
        begin
          sPanel2.Visible:=false;
          TestNow:=StrToInt(OrderTest[0]);
          OrderTest.Delete(0);
          CreateTest(TestNow, sRadioGroup1, DataModule3.ADOOperation);
          sButton1.Caption:='Ответить';
        end
      else
        begin
          sRadioGroup1.Caption:='Тестирование завершено';
          sPanel2.Visible:=true;
          mark:=CalcMark(rigthanswers, GetMaxQusetID(DataModule3.ADOOperation, ThemeName), sGauge1);
          sLabel1.Caption:='Тестирование окончено!'+#13#10+
          'Вы прошли тестирование'+#13#10+
          'Ваша оценка: '+mark+#13#10+
          'Эта оценка пойдёт в'+#13#10+
          'ваш профиль.';
        end;
    end
  else
    begin
      if LowerCase(sEdit1.Text)=LowerCase(GetRigthAnswer(sEdit1.Text, DataModule3.ADOOperation2)) then
        inc(rigthanswers);
      if (OrderTest.Count-1)>0 then
        begin
          sPanel2.Visible:=false;
          TestNow:=StrToInt(OrderTest[0]);
          OrderTest.Delete(0);
          ShowMessage(IntToStr(TestNow));
          CreatePR(TestNow, sLabel3, DataModule3.ADOOperation2, ThemeName);
          sButton1.Caption:='Ответить';
        end
      else
        begin
          sPanel3.Visible:=false;
          sPanel2.Visible:=true;
          mark:=CalcMark(rigthanswers, GetMaxQusetID(DataModule3.ADOOperation2, ThemeName), sGauge1);
          sLabel1.Caption:='Тестирование окончено!'+#13#10+
          'Вы прошли тестирование'+#13#10+
          'Ваша оценка: '+mark+#13#10+
          'Эта оценка пойдёт в'+#13#10+
          'ваш профиль.';
        end;
    end;
end;
Миниатюры
Ошибка при выходе из программы и неправильно происходит процедура  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2014, 05:04
Ответы с готовыми решениями:

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

Ошибка при движении мышкой и выходе из программы
Ребята, помогите пожалуйста!!! Постоянно после нажатия на Button3 выскакивает Access Violation at...

Ошибка при выходе из программы
Проблема в следующем когда я создаю персонажа все хорошо ну как только попробую выйти из программы...

Ошибка при выходе из программы
Помогите пожалуйста найти ошибку, которая возникает при выходе из программы. Error -...

1
14 / 14 / 13
Регистрация: 08.04.2012
Сообщений: 113
07.05.2014, 19:51  [ТС] 2
Одну проблему решил...
Изменил условие...
Что то не додумал чуток что нужно ещё думать что он может быть равен 0 до выхода из верного условия в условие else
Заменил
if (OrderTest.Count-1)>0 then
На
if (OrderTest.Count-1)>=0 then

Добавлено через 14 часов 6 минут
Ошибку решил... Оказывается при создание теста(CreateTest) я оставляя комментарии в коде случайно закомментировал строчку кода которая высвобождает переменную для перемешивания элементов в RadioGroup.
0
07.05.2014, 19:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2014, 19:51
Помогаю со студенческими работами здесь

Ошибка при выходе из программы
Не судите строго, только вчера начал изучать QT)) Вот есть простой код #include...

Ошибка при выходе с программы
Пишу програму на C++ builder XE3. Программа работает. int N = 0; int *m = new int; ...

Ошибка при выходе из программы
Работаю с экселем.Открываю книгу,обрабатываю.Если открываю документ из моей программы,то после...

Ошибка доступа к памяти при выходе из программы
Подскажите почему после завершения работы выдаётся ошибка, что идёт запись данных в память? вроде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru