Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.02.19;
Скачать: CL | DM;

Вниз

Это баг, фича, или я чего не понимаю?   Найти похожие ветки 

 
Dimka Maslov ©   (2016-03-21 11:38) [0]

Вот такой код:


type
 TProc = reference to procedure;

procedure CallProc(Proc: TProc);
begin
 Proc;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 S1, S2, S3: String;

begin
 S1 := "S1";
 S2 := "S2";
 S3 := "S3";

 CallProc(procedure
 begin
   S2 := S1;
 end);

 ShowMessage("S1 = " + S1 + ", S2 = " + S2 + ", S3 = " + S3);

end;


Работает всё правильно. Но если я войду в функцию отладчиком, то в окне Watches для S1 и S2 будет написано Undeclared identifier!


 
KSergey ©   (2016-03-21 12:03) [1]

А если оптимизацию выключить?


 
Dimka Maslov ©   (2016-03-21 12:05) [2]

Выключена


 
KSergey ©   (2016-03-21 13:04) [3]

Тогда фича дебагера.
И поделом.
(кстати, а как вы попадаете в функцию? не нашел места в коде, похожего на её вызов)


 
Dimka Maslov ©   (2016-03-21 14:53) [4]

Button1Click - попадание нажатием на кнопку с выставлением брейкпоинта.


 
KSergey ©   (2016-03-21 15:51) [5]

Ёлы-палы, я думал речь про этот кусочек:

 CallProc(procedure
 begin
   S2 := S1;
 end);


 
han_malign ©   (2016-03-21 16:17) [6]


> для S1 и S2 будет написано Undeclared identifier!

- естеcтвенно, т.к. - в лучшем случае - в этом месте существуют только сылочные поля неявно созданного функтора. В худшем - undefined behavior...


 
Dimka Maslov ©   (2016-03-21 19:24) [7]


> KSergey ©   (21.03.16 15:51) [5]


Так тут же и вызываем.


> естеcтвенно,


Не внутри CallProc, а внутри Button1Click же! Где всё ясно и понятно. При этом S3, который не упомянут в анонимной процедуре - нормально распознаётся отладчиком.



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

Текущий архив: 2017.02.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
2-1434512890
aik_has
2015-06-17 06:48
2017.02.19
Operator not applicable to this operand t


2-1434517633
Staziah2
2015-06-17 08:07
2017.02.19
Добавление цветных ячеек в wwDBGrid


2-1434009573
lewka
2015-06-11 10:59
2017.02.19
Проблема с временем в запросе Access


2-1433923032
pavelnk
2015-06-10 10:57
2017.02.19
VertScroolBar формы


2-1433843339
pavelnk
2015-06-09 12:48
2017.02.19
Свернуть форму