Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.12.2013, 12:45
snr93 snr93 вне форума
Прохожий
 
Регистрация: 10.10.2012
Сообщения: 11
Репутация: 10
По умолчанию Проблема с объявлением меток

Добрый день всем. Никак не могу понять почему Delphi выкидывает сообщение
[Error] Unit1.pas(28): Label declared and referenced, but not set: 'yzi5'
Хотя метка в коде есть. Да, я знаю что использование GoTo не желательно, но я не знаю что тут можно еще применить.
Вот кусок кода
Код:
//íà÷èíàåì àíàëèç ðåçóëüòàòîâ
if c1>=5 then
begin
GoTo yzi5;
end
else
 ShowMessage('Íåèçâåñòíîå çàáîëåâàíèå');
end;
if c2>=5 then
begin
GoTo yzi6;
end
else
begin
 ShowMessage('Íåèçâåñòíîå çàáîëåâàíèå');
end;
//çàêîí÷èëè àíàëèç ðåçóëüòàòîâ

//íà÷àëî ÓÇÈ ïî÷åê 5 áëîê
yzi5: begin
d1:=2;
    if MessageDlg('Åñòü ëè ðàñøèðåíèå ëîõàíîê ïî÷åê?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   d1:=d1+1;
    if MessageDlg('Åñòü ëè êàðáóíêóë ïî÷êè?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   d1:=d1+1;
    if MessageDlg('Åñòü ëè ïàðàíåðôàëüíûé àáñöåñ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   d1:=d1+1;
//çàêîí÷èëè ÓÇÈ ïî÷åê 5 áëîê
Так же весь код(сорри не знаю как спрятать под спойлер)
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  b1,b2,c1,c2,d1,d2,e1: integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
label mocha,pieloefrit,glomerylonefrit,yzi5,yzi6,rengen;   //îáúÿâëÿåì ïåðåõîäû ê òî÷êàì
//ïåðåáèðàåì îáùèå âîïðîñû
begin
    if MessageDlg('Åñòü áîëè â ïîÿñíèöå?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   b1:=1;
   b2:=1;
    if MessageDlg('Åñòü ëè ïîâûøåííîå ÀÄ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   b1:=b1+1;
   b2:=b2+1;
    if MessageDlg('Åñòü ëè áîëè â îáëàñòè æèâîòà?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   b1:=b1+1;
    if MessageDlg('Åñòü ëè îòåêè êîíå÷íîñòåé?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   b1:=b1+1;
   b2:=b2+1;
    if MessageDlg('Åñòü ëè îáùàÿ ñëàáîñòü?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   b1:=b1+1;
   b2:=b2+1;
    if MessageDlg('Åñòü ëè òîøíîòà?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   b1:=b1+1;
   b2:=b2+1;
    if MessageDlg('Åñòü ëè íîñîâûå êðîâîòå÷åíèÿ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   b2:=b2+1;
    if MessageDlg('Åñòü ëè ïîâûøåííàÿ ñóõîñòü êîæè?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   b2:=b2+1;
//çàêîí÷èëè ïåðåáîð îáùèõ âîïðîñîâ

//äåëàåì àíàëèç ïîñëå îòâåòîâ íà îáùèå âîïðîñû
if b1>=4 then begin
 GoTo mocha;
 end
 else
 if b2>=4 then begin
 GoTo mocha;
 end
 else
 begin
 ShowMessage('Âñå â íîðìå');
end;
 //çàêîí÷èëè àíàëèç îòâåòîâ íà îáùèå âîïðîñû

 //íà÷èíàåì ïåðåáîð âîïðîñîâ î ìî÷å
mocha:
begin
c1:=1;
c2:=1;
    if MessageDlg('Ïîâûøåííûé óðîâåíü ëåéêîöèòîâ â ìî÷å?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   c1:=c1+1;
   c2:=c2+1;
    if MessageDlg('Ïîâûøåí óðîâåíü áåëêà â ìî÷å?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   c1:=c1+1;
   c2:=c2+1;
    if MessageDlg('Åñòü ëè áàêòåðèè â ìî÷å?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   c1:=c1+1;
    if MessageDlg('Åñòü ëè â ìî÷å ýðèòðîöèòû?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   c2:=c2+1;
end;
//çàêîí÷èëè ïåðåáîð âîïðîñîâ î ìî÷å

//íà÷èíàåì ïåðåáîð âîïðîñîâ î êðîâè
begin
    if MessageDlg('Ïîâûøåííûé óðîâåíü ëåéêîöèòîâ â êðîâè?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   c1:=c1+1;
    if MessageDlg('Ïîâûøåí óðîâåíü áåëêà â êðîâè?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   c2:=c2+1;
end;
//çàêîí÷èëè ïåðåáîð âîïðîñîâ î êðîâè

//íà÷èíàåì àíàëèç ðåçóëüòàòîâ
if c1>=5 then
begin
GoTo yzi5;
end
else
 ShowMessage('Íåèçâåñòíîå çàáîëåâàíèå');
end;
if c2>=5 then
begin
GoTo yzi6;
end
else
begin
 ShowMessage('Íåèçâåñòíîå çàáîëåâàíèå');
end;
//çàêîí÷èëè àíàëèç ðåçóëüòàòîâ

//íà÷àëî ÓÇÈ ïî÷åê 5 áëîê
yzi5: begin
d1:=2;
    if MessageDlg('Åñòü ëè ðàñøèðåíèå ëîõàíîê ïî÷åê?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   d1:=d1+1;
    if MessageDlg('Åñòü ëè êàðáóíêóë ïî÷êè?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   d1:=d1+1;
    if MessageDlg('Åñòü ëè ïàðàíåðôàëüíûé àáñöåñ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   d1:=d1+1;
//çàêîí÷èëè ÓÇÈ ïî÷åê 5 áëîê

//íà÷àëî àíàëèçà ðåçóëüòàòîâ
if d1>=5 then
  if MessageDlg('Îáíàðóæåí ïèåëîíåôðèò. Ïîêàçàòü èíôîðìàöèþ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  ShowMessage('?');
end
else
begin
 ShowMessage('?');
 end;
//êîíåö àíàëèçà ðåçóëüòàòîâ

//íà÷àëî ðåíãåíà
rengen:
e1:=3;
    if MessageDlg('Åñòü ëè ñäàâëåíèå ìî÷åâûõ ïóòåé?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   e1:=e1+1;
    if MessageDlg('Åñòü ëè íàðóøåíèå ÷àøå÷íî-ëîõàíî÷íîé ñèñòåìû?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   e1:=e1+1;
    if MessageDlg('Åñòü ëè îïóõîëü?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   e1:=e1+1;
    if MessageDlg('Åñòü ëè êàìåíü?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   e1:=e1+1;
//êîíåö ðåíãåíà

//íà÷èíàåì àíàëèç ðåçóëüòàòîâ
if e1>=5 then
 ShowMessage('Íåèçâåñòíîå çàáîëåâàíèå');
end
else
begin
 ShowMessage('Íåèçâåñòíîå çàáîëåâàíèå');
//çàêîí÷èëè àíàëèç ðåçóëüòàòîâ

//íà÷àëî ÓÇÈ ïî÷åê 6 áëîê
yzi6:
d2:=2;
    if MessageDlg('Åñòü ëè óïëîòíåíèå òêàíåé ïî÷êè?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   d2:=d2+2;
    if MessageDlg('Åñòü ëè óìåíüøåíèå ðàçìåðîâ ïî÷êè?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   d2:=d2+3;
//çàêîí÷èëè ÓÇÈ ïî÷åê 6 áëîê

//íà÷èíàåì àíàëèç ðåçóëüòàòîâ

//çàêîí÷èëè àíàëèç ðåçóëüòàòîâ
end;


end;

end.
Ответить с цитированием
  #2  
Старый 19.12.2013, 12:56
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от snr93
Добрый день всем. Никак не могу понять почему Delphi выкидывает сообщение
[Error] Unit1.pas(28): Label declared and referenced, but not set: 'yzi5'
Хотя метка в коде есть. Да, я знаю что использование GoTo не желательно, но я не знаю что тут можно еще применить.
Это тебе кажется что она есть, раз компилятор говорит что её нет, значит её нет
У тебя там напутана структура (как минимум один лишний end) из-за чего метод Button1Click заканчивается раньше чем ты считаешь, вот компилятор и не видит этой метки. Отформатируй красиво код и сам в этом убедишься. И вообще старайся сразу писать код уже форматированным.
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
snr93 (19.12.2013)
  #3  
Старый 20.12.2013, 21:19
Lord_Vlad Lord_Vlad вне форума
Прохожий
 
Регистрация: 28.11.2013
Адрес: Москва
Сообщения: 19
Версия Delphi: Delphi 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от snr93
Да, я знаю что использование GoTo не желательно, но я не знаю что тут можно еще применить.

Вот в соседней ветке как раз задал вопрос, зачем используете GoTo
Подскажу свой вектор движения, чтобы его (оператор) не использовать:
1. Флаги, передаваемые параметрами функциям. В качестве флага использую переменные и параметры типа Boolean, хотя можно и тот же integer (0 или 1 вместо False или True).
2. Собственно сами функции. Мало того, функция ответом может вернуть результат своего деяния, откуда мы примем решение, что делать дальше и куда идти.

Ну это можно долго расписывать, хоть еще книгу "Все о Delphi" напиши.

ОФФ
Последний раз использовал переходы по лейбакам в ассемблере, да и те были полуусловными - rjmp в условии
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter