Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/32: Рейтинг темы: голосов - 32, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 43

Type of expression must be BOOLEAN

10.06.2012, 22:20. Показов 7201. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Эх блин ещё с одной программой ошибка((( не поможете разобраться???
Вложения
Тип файла: zip Тест.zip (8.2 Кб, 13 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.06.2012, 22:20
Ответы с готовыми решениями:

Ошибка: Type of expression must be BOOLEAN
Собственно писал программку и мне надо если поток заканчивает работу, писало сообщение вот моя часть кода, подскажите где ошибка и как...

Ошибка: Type of expression must be BOOLEAN
Писал программу для проекта и выдает ошибку Type of expression must be BOOLEAN procedure TForm1.CheckBox1Click(Sender: TObject); begin ...

Ошибка Type of expression must be BOOLEAN
procedure TForm1.Button10Click(Sender: TObject); var i: integer ; begin For i :=0 to Form1.Memo3.Lines.Count-1 do if...

40
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 43
10.06.2012, 23:50  [ТС]
Студворк — интернет-сервис помощи студентам
Спасибо вам всем, что учите такого дурака, как я
0
 Аватар для uiivalet
12 / 12 / 4
Регистрация: 18.06.2010
Сообщений: 107
10.06.2012, 23:52
ну ты выдаешь, а я сижу думаю чё такое, чё не работает, только у тебя в файл не пишет
1
 Аватар для uiivalet
12 / 12 / 4
Регистрация: 18.06.2010
Сообщений: 107
10.06.2012, 23:57
если надо то вот, вроде записывает
Вложения
Тип файла: rar ТЕСТ123.rar (187.0 Кб, 5 просмотров)
1
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
11.06.2012, 00:34
Сделал полностью рабочий тест(с подсчетом) и запись в файл через через твою Форму 2
Вложения
Тип файла: rar Тест_fix2.rar (343.3 Кб, 7 просмотров)
1
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 43
11.06.2012, 00:53  [ТС]
хмммм, только на твоем тесте, у меня делфи завис как мертвый(((
0
 Аватар для uiivalet
12 / 12 / 4
Регистрация: 18.06.2010
Сообщений: 107
11.06.2012, 00:55
Sabatag, аналогично, тож не работает
0
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
11.06.2012, 00:56
Цитата Сообщение от Sabatag Посмотреть сообщение
хмммм, только на твоем тесте, у меня делфи завис как мертвый(((
Такое иногда случается. У меня 2010.
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    RadioGroup1: TRadioGroup;
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
type
  V = record
    V: string;
    O1: string;
    O2: string;
    O3: string;
    O_1: boolean;
    O_2: boolean;
    O_3: boolean;
 
  end;
 
var
  Form1: TForm1;
  Number: integer;
  MV: array [1 .. 10] of V;
  MO: array [1 .. 10] of V;
   error,pass: integer;
implementation
 
Uses Unit2;
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  Button2.Visible := true;
  MV[1].V := 'С КАКОЙ ИЗ ПЕРЕЧИСЛЕННЫХ СТРАН РОССИЯ ИМЕЕТ СУХОПУТНУЮ ГРАНИЦУ?';
  MV[1].O1 := 'ТУРКМЕНИЯ';
  MV[1].O2 := 'ШВЕЦИЯ';
  MV[1].O3 := 'МОНГОЛИЯ';
  MV[1].O_1 := False;
  MV[1].O_2 := False;
  MV[1].O_3 := true;
 
  MV[2].V := 'В КАКОЙ ГРУППЕ НАЗВАНЫ ПРЕДСТАВИТЕЛИ РАСТИТЕЛЬНОГО МИРА ЗОНЫ СТЕПИ?';
  MV[2].O1 := 'СОСНА,ЕЛЬ,КОВЫЛЬ';
  MV[2].O2 := 'КОВЫЛЬ,КЛЕВЕР,ТИПЧАК';
  MV[2].O3 := 'КЛЕН,ПОЛЫНЬ,КЕДР';
  MV[2].O_1 := False;
  MV[2].O_2 := true;
  MV[2].O_3 := False;
 
  MV[3].V := 'СЕЛЕВЫЕ ПОТОКИ НАНОСЯТ БОЛЬШОЙ ВРЕД ЖИТЕЛЯМ ';
  MV[3].O1 := 'КАВКАЗА';
  MV[3].O2 := 'ЗАПДНОЙ СИБИРИ';
  MV[3].O3 := 'ДАЛЬНЕГО ВОСТОКА';
  MV[3].O_1 := true;
  MV[3].O_2 := False;
  MV[3].O_3 := False;
 
  MV[4].V := 'ВЫБЕРИТЕ РЯД,В КОТОРОМ ПОЧВЫ РАСПРЕДЕЛЕНЫ В ПОРЯДКЕ УЛУЧШЕНИЯ ПЛОДОРОДИЯ.';
  MV[4].O1 := 'ПОДЗОЛИСТЫЕ,СЕРЫЕ ЛЕСНЫЕ,ЧЕРНОЗЕМЫ';
  MV[4].O2 := 'ЧЕРНОЗЕМЫ,КАШТАНОВЫЕ,СЕРНЫЕ ЛЕСНЫЕ';
  MV[4].O3 := 'ЧЕРНОЗЕМЫ,ГЛЕЕВЫЕ,ПОДЗОЛИСТЫЕ';
  MV[4].O_1 := true;
  MV[4].O_2 := False;
  MV[4].O_3 := False;
 
  MV[5].V := 'ПОЧЕМУ КОЛЬСКИЙ ПОЛУОСТРОВ БОГАТ  РУДНЫМИ ИСКОПАЕМЫМИ?';
  MV[5].O1 := 'В ОСНОВАНИИ ЕГО ТЕРРИТОРИИ ЛЕЖИТ МОЩНЫЙ СЛОЙ ОСАДОЧНЫХ ПОРОД ЧЕХЛА ДРЕВНЕЙ ПЛАТФОРМЫ';
  MV[5].O2 := 'ЭТА ТЕРРИТОРИЯ РАСПОЛОЖЕНА В ПРЕДЕЛАХ КРИСТАЛЛИЧЕСКОГО ЩИТА ДРЕВНЕЙ ПЛАТФОРМЫ';
  MV[5].O3 := 'ТЕРРИТОРИЯ ПРТЕРПЕЛА ПОДНЯТИЕ ПОСЛЕ РАЗРУШЕНИЯ';
  MV[5].O_1 := False;
  MV[5].O_2 := true;
  MV[5].O_3 := False;
 
  MV[6].V := 'КАКИЕ ПОЧВЫ ХАРАКТЕРНЫ ДЛЯ ТАЕЖНЫХ ЛЕСОВ?';
  MV[6].O1 := 'СЕРНЫЕ ЛЕСНЫЕ';
  MV[6].O2 := 'ЧЕРНОЗЕМЫ';
  MV[6].O3 := 'ПОДЗОЛИСТЫЕ';
  MV[6].O_1 := False;
  MV[6].O_2 := False;
  MV[6].O_3 := true;
 
  MV[7].V := 'САМОЕ БОЛЬШОЕ ПО ПЛОЩАДИ ОЗЕРО В РОССИИ';
  MV[7].O1 := 'БАЙКАЛ';
  MV[7].O2 := 'ЛАДОЖСКОЕ';
  MV[7].O3 := 'ХАНКА';
  MV[7].O_1 := False;
  MV[7].O_2 := true;
  MV[7].O_3 := False;
 
  MV[8].V := 'РОССИЯ РАСПОЛОЖЕНА..';
  MV[8].O1 := 'ТОЛЬКО В СЕВЕРНОМ ПОЛУШАРИИ';
  MV[8].O2 := 'В СЕВЕРНОМ ,ВОСТОЧНОМ,ЗАПАДНОМ ПОЛУШАРИИ';
  MV[8].O3 := 'В ЮЖНОМ,ВОСТОЧНОМ И ЗАПАДНОМ';
  MV[8].O_1 := False;
  MV[8].O_2 := true;
  MV[8].O_3 := False;
 
  MV[9].V := 'КАКАЯ ПРИРОДНАЯ ЗОНА ОТСУТСТВУЕТ В РОССИИ?';
  MV[9].O1 := 'АНТАРКТИЧЕСКАЯ ПУСТЫНЯ';
  MV[9].O2 := 'ТУНДРА';
  MV[9].O3 := 'СМЕШАННЫЕ ЛЕСА';
  MV[9].O_1 := true;
  MV[9].O_2 := False;
  MV[9].O_3 := False;
 
  MV[10].V :=
    'АТМОСФЕРНЫЙ ВИХРЬ С НИЗКИМ ДАВЛЕНИЕМ В ЦЕНТРЕ ,ЗИМОЙ ЧАСТО ПРИНОСИТ СНЕГОПАДЫ И ОТТЕПЕЛИ ,ЛЕТОМ ОБИЛЬНЫЕ ОСАДКИ.';
  MV[10].O1 := 'АНТИЦИКЛОН';
  MV[10].O2 := 'ХОЛОДНЫЙ ФРОНТ';
  MV[10].O3 := 'ЦИКЛОН';
  MV[10].O_1 := False;
  MV[10].O_2 := False;
  MV[10].O_3 := true;
  Button1.Visible := False;
  Number := 1;
  Memo1.Text := MV[Number].V;
  RadioGroup1.Items.Strings[0] := '1) ' + MV[Number].O1;
  RadioGroup1.Items.Strings[1] := '2) ' + MV[Number].O2; ;
  RadioGroup1.Items.Strings[2] := '3) ' + MV[Number].O3; ;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
Var
   ocenka, Stroka: string;
  a: textfile;
begin
  if (Number <> 10) then
    begin
      if (RadioGroup1.Buttons[0].Checked = true) then  if Mv[Number].O_1 = true   then inc(pass)  else inc(error);
      if (RadioGroup1.Buttons[1].Checked = true) then  if Mv[Number].O_2 = true   then inc(pass)  else inc(error) ;
      if (RadioGroup1.Buttons[2].Checked = true) then  if Mv[Number].O_3 = true   then inc(pass)  else inc(error) ;
 
      Number := Number + 1;
      RadioGroup1.Buttons[0].Checked := False;
      RadioGroup1.Buttons[1].Checked := False;
      RadioGroup1.Buttons[2].Checked := False;
      Memo1.Text := MV[Number].V;
      RadioGroup1.Items.Strings[0] := MV[Number].O1;
      RadioGroup1.Items.Strings[1] := MV[Number].O2;
      RadioGroup1.Items.Strings[2] := MV[Number].O3;
    end
  else
    begin
      if (RadioGroup1.Buttons[0].Checked = true) then  if Mv[Number].O_1 = true   then inc(pass)  else inc(error);
      if (RadioGroup1.Buttons[1].Checked = true) then  if Mv[Number].O_2 = true   then inc(pass)  else inc(error) ;
      if (RadioGroup1.Buttons[2].Checked = true) then  if Mv[Number].O_3 = true   then inc(pass)  else inc(error) ;
 
 
      if (error = 0) then
        ocenka := '5';
      if (error = 1) then
        ocenka := '5';
 
      if (error = 2) then
        ocenka := '4';
      if (error = 3) then
        ocenka := '4';
 
      if (error = 4) then
        ocenka := '3';
      if (error = 5) then
        ocenka := '3';
 
      if (error = 6) then
        ocenka := '2';
      if (error = 7) then
        ocenka := '2';
      if (error = 8) then
        ocenka := '2';
 
      if (error = 9) then
        ocenka := '1';
      if (error = 10) then
        ocenka := '1';
      Stroka := 'вы ответили правильно на :' + '' + IntToStr(pass) + ' вопросов,ваша оценка: ' + ocenka;
      ShowMessage(Stroka);
      Form2.ShowModal;
      assignfile(a, 'File.txt');
      try
        append(a);
        writeln(a, '   Фамилия   ', q, '/   Имя   ', w, '/  класс   ', e, '/   Оценка   ', ocenka);
 
      finally
        closefile(a);
      end;
 
      Form1.Close;
     end;
    end;
End.
1
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 43
11.06.2012, 01:09  [ТС]
Точнее, тест работает, а само ядро нет)
Ну хоть не я один такой

Добавлено через 12 минут
Delphi
1
2
3
if (RadioGroup1.Buttons[0].Checked = true) then  if Mv[Number].O_1 = true   then inc(pass)  else inc(error);
      if (RadioGroup1.Buttons[1].Checked = true) then  if Mv[Number].O_2 = true   then inc(pass)  else inc(error) ;
      if (RadioGroup1.Buttons[2].Checked = true) then  if Mv[Number].O_3 = true   then inc(pass)  else inc(error) ;
Выводит ошибку left side cannot be assigned to, как исправить, не подскажите???
0
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
11.06.2012, 01:15
Ты строку 41 в моем коде у себя прописал?
Delphi
1
 error,pass: integer;
1
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 43
11.06.2012, 01:44  [ТС]
Приписал, но не там, Спасибо всем ещё раз

Добавлено через 27 минут
Хммм, а когда просто не отвечаешь, тебе ставят пять как бы у тебя ноль ошибок, как сделать что бы ставил 2???
0
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
11.06.2012, 01:56
Вместо этого кода
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
if (error = 0) then
        ocenka := '5';
      if (error = 1) then
        ocenka := '5';
 
      if (error = 2) then
        ocenka := '4';
      if (error = 3) then
        ocenka := '4';
 
      if (error = 4) then
        ocenka := '3';
      if (error = 5) then
        ocenka := '3';
 
      if (error = 6) then
        ocenka := '2';
      if (error = 7) then
        ocenka := '2';
      if (error = 8) then
        ocenka := '2';
 
      if (error = 9) then
        ocenka := '1';
      if (error = 10) then
        ocenka := '1';
Вставь такой
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if (error = 0) or (error = 1) then
        ocenka := '5';
 
      if (error = 2) or (error = 3) then
        ocenka := '4';
 
      if (error = 4) or (error = 5) then
        ocenka := '3';
 
      if (error = 6) or (error = 7) or (error = 8) then
        ocenka := '2';
 
      if (error = 9) or (error = 10) then
        ocenka := '1';
       if (error = 0) and (pass = 0) then
        ocenka := '0';
1
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 43
11.06.2012, 02:24  [ТС]
А возможно сделать так, что бы после каждого ответа писал верно или не верно???
0
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
11.06.2012, 02:29
Где писал, в лейбл или выдавал диалоговое сообщение?
0
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 43
11.06.2012, 02:31  [ТС]
Ого ещё как можно, Ну лучше где проще.
0
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
11.06.2012, 02:49
Изменений не сильно много, но выкладываю полностью процедуру с маленькими коментариями.
Вывод через диалоговое окошко.
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
procedure TForm1.Button2Click(Sender: TObject);
Var
  ocenka, Stroka: string;
  old_pass: integer;    // добавляем новую переменную
  a: textfile;
begin
 old_pass:=pass;      // присваеваем изначальн последний положительный результат
   if (Number <> 10) then
    begin
      if (RadioGroup1.Buttons[0].Checked = true) then
        if MV[Number].O_1 = true then
          inc(pass)
        else
          inc(error);
      if (RadioGroup1.Buttons[1].Checked = true) then
        if MV[Number].O_2 = true then
          inc(pass)
        else
          inc(error);
      if (RadioGroup1.Buttons[2].Checked = true) then
        if MV[Number].O_3 = true then
          inc(pass)
        else
          inc(error);
  // Если результат не изменился , значит ответ не правильный , иначе правильный
     if old_pass = pass then  ShowMessage('Ответ не верный')
     else ShowMessage('Ответ  верный');
 
      Number := Number + 1;
      RadioGroup1.Buttons[0].Checked := False;
      RadioGroup1.Buttons[1].Checked := False;
      RadioGroup1.Buttons[2].Checked := False;
      Memo1.Text := MV[Number].V;
      RadioGroup1.Items.Strings[0] := MV[Number].O1;
      RadioGroup1.Items.Strings[1] := MV[Number].O2;
      RadioGroup1.Items.Strings[2] := MV[Number].O3;
    end
  else
    begin
      if (RadioGroup1.Buttons[0].Checked = true) then
        if MV[Number].O_1 = true then
          inc(pass)
        else
          inc(error);
      if (RadioGroup1.Buttons[1].Checked = true) then
        if MV[Number].O_2 = true then
          inc(pass)
        else
          inc(error);
      if (RadioGroup1.Buttons[2].Checked = true) then
        if MV[Number].O_3 = true then
          inc(pass)
        else
          inc(error);
// Если результат не изменился , значит ответ не правильный , иначе правильный
       if old_pass = pass then  ShowMessage('Ответ не верный')
     else ShowMessage('Ответ  верный');
 
 
      if (error = 0) or (error = 1) then
        ocenka := '5';
 
      if (error = 2) or (error = 3) then
        ocenka := '4';
 
      if (error = 4) or (error = 5) then
        ocenka := '3';
 
      if (error = 6) or (error = 7) or (error = 8) then
        ocenka := '2';
 
      if (error = 9) or (error = 10) then
        ocenka := '1';
       if (error = 0) and (pass = 0) then
        ocenka := '0';
      Stroka := 'вы ответили правильно на :' + '' + IntToStr(pass) + ' вопросов,ваша оценка: ' + ocenka;
      ShowMessage(Stroka);
      Form2.ShowModal;
      assignfile(a, 'File.txt');
      try
        // try
        append(a);
        writeln(a, '   Фамилия   ', q, '/   Имя   ', w, '/  класс   ', e, '/   Оценка   ', ocenka);
 
      finally
        closefile(a);
      end;
      Form1.Close;
    end;
end;
1
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 43
11.06.2012, 12:17  [ТС]
Вот за это большущее спасибо...

Добавлено через 9 часов 24 минуты
Я так понимаю, у него самый простенький алгоритм???
0
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
11.06.2012, 12:45
Цитата Сообщение от Sabatag Посмотреть сообщение
Я так понимаю, у него самый простенький алгоритм???
Все зависит от поставленной задачи. В данном случае, очень удобен.
1
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 43
12.06.2012, 22:33  [ТС]
А можно доя каждого вопроса или теста установить время???
0
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
13.06.2012, 02:49
Цитата Сообщение от Sabatag Посмотреть сообщение
А можно доя каждого вопроса или теста установить время???
Можно. Будем устанавливать время на ответ каждого вопроса 30 секунд. Захочешь, поменяешь на свое значение.
Устанавливаем глобальную переменную.
Delphi
1
sec: TDateTime;
Подключаем новый модуль, для работы со временем и датой
Delphi
1
Uses  DateUtils;
Ложим на форму таймер. Устанавливаем у него свойство enabled в false. А в событии onTimer пишем следующие
Delphi
1
2
3
4
5
6
procedure TForm1.Timer1Timer(Sender: TObject);
begin
sec:=IncSecond(sec);  // увеличиваем переменную sec на одну секунду
Label1.Caption:=TimeToStr(sec); // выводим время в label 
if StrToTime(Label1.Caption)>=StrToTime('0:0:30') then  Button2.click // Если больше 30 секунд жмем следующий вопрос
end;
В процедуре Button1Click в самом конце дописываем
Delphi
1
Timer1.Enabled:= true;
процедурe Button2Click я выкладываю полностью, тем более что там произошли некоторые изменения
комментарии по ходу
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
procedure TForm1.Button2Click(Sender: TObject);
Var
  ocenka, Stroka: string;
  old_pass: integer;
  a: textfile;
begin
sec:=0;    // обнуляем секундомер
 
  old_pass := pass;
  if (Number <> 10) then
    begin
      if (RadioGroup1.Buttons[0].Checked = true) then
        if MV[Number].O_1 = true then
          inc(pass)
        else
          inc(error)
  else    if (RadioGroup1.Buttons[1].Checked = true) then
        if MV[Number].O_2 = true then
          inc(pass)
        else
          inc(error)
 else     if (RadioGroup1.Buttons[2].Checked = true) then
        if MV[Number].O_3 = true then
          inc(pass)
        else
          inc(error)
  else inc(error);
      Timer1.Enabled:= false;  // останавливаем таймер на время показа диалога
      if old_pass = pass then
        ShowMessage('Ответ не верный')
      else
        ShowMessage('Ответ  верный');
      Timer1.Enabled:= true; // запускаем таймер
      Number := Number + 1;
      RadioGroup1.Buttons[0].Checked := False;
      RadioGroup1.Buttons[1].Checked := False;
      RadioGroup1.Buttons[2].Checked := False;
      Memo1.Text := MV[Number].V;
      RadioGroup1.Items.Strings[0] := MV[Number].O1;
      RadioGroup1.Items.Strings[1] := MV[Number].O2;
      RadioGroup1.Items.Strings[2] := MV[Number].O3;
    end
  else
    begin
      if (RadioGroup1.Buttons[0].Checked = true) then
        if MV[Number].O_1 = true then
          inc(pass)
        else
          inc(error)
  else     if (RadioGroup1.Buttons[1].Checked = true) then
        if MV[Number].O_2 = true then
          inc(pass)
        else
          inc(error)
   else    if (RadioGroup1.Buttons[2].Checked = true) then
        if MV[Number].O_3 = true then
          inc(pass)
        else
          inc(error)
  else  inc(error);
     // останавливаем таймер уже на совсем
     Timer1.Enabled:= false;
 
      if old_pass = pass then
        ShowMessage('Ответ не верный')
      else
        ShowMessage('Ответ  верный');
 
      if (error = 0) or (error = 1) then
        ocenka := '5';
 
      if (error = 2) or (error = 3) then
        ocenka := '4';
 
      if (error = 4) or (error = 5) then
        ocenka := '3';
 
      if (error = 6) or (error = 7) or (error = 8) then
        ocenka := '2';
 
      if (error = 9) or (error = 10) then
        ocenka := '1';
     if (error = 10) and (pass = 0) then
        ocenka := '0';
      Stroka := 'вы ответили правильно на :' + '' + IntToStr(pass) + ' вопросов,ваша оценка: ' + ocenka;
      ShowMessage(Stroka);
      Form2.ShowModal;
      assignfile(a, 'File.txt');
      try
        if FileExists('File.txt') then
          append(a)
        else
          rewrite(a);
          writeln(a, '   Фамилия   ', q, '/   Имя   ', w, '/  класс   ', e, '/   Оценка   ', ocenka);
 
      finally
        closefile(a);
      end;
      Form1.Close;
    end;
end;
1
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 43
13.06.2012, 14:08  [ТС]
Хм, а как сделать что бы радиокнопки после каждого ответа не выделялись.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.06.2012, 14:08

Почему выдаёт ошибку "Type of expression must be Boolean"?
Делаю вход для программы а мне выдаёт ошибку? Там где if и then. Почему?

Ошибка после then "Type of expression must be BOOLEAN"
Всем привет. У меня такой вопрос, что в этом коде не правильно, вылетает ошибка после then procedure TForm3.CheckBox1Click(Sender:...

Проблема Type of expression must be BOOLEAN
К примеру пишу: procedure TForm1.Button1Click(Sender: TObject); begin if edit1.Text:='' then begin showmessage('Введите...

Ошибка: Statement expected, but expression of type 'Boolean' found
Нужно добавить записи в бд через делфи код выдет ошибку procedure TDob.Button1Click(Sender: TObject); begin DM.DDD.Close; ...

Ошибка could not convert variant of type (string) into type (boolean)
Пытаюсь добавить запись в DBGrid, так чтобы количество прибавлялось в другой таблице Вот сам Код var a,b: integer; begin ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru