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

Вниз

Как получить номер строки в коде?   Найти похожие ветки 

 
Wolfram ©   (2006-03-26 11:39) [0]

Я хочу, чтобы моя программа в определённой ситуации выводила номер строки исходного кода. Что-то вроде утверждения (assert). Как получить заставить компилятор дать этот номер? Например:
var
 n: integer;
begin
...
n:={вот тут нужно получить номер текущей строчки в исходнике}
...
if ... then ShowMessage(IntToStr(n));
...
end;


 
grisme ©   (2006-03-26 11:48) [1]

надо пробовать как-то через получение значения регистра EIP, который Delphi, конечно же, тебе не даст получить...:)))


 
Геро   (2006-03-26 11:53) [2]

В строке статуса написано. Ставишь курсор куда нужно и смотришь.


 
Юрий Зотов ©   (2006-03-26 11:59) [3]

Assert и использовать.


 
Wolfram ©   (2006-03-26 12:06) [4]


> надо пробовать как-то через получение значения регистра
> EIP

я про номер строки в ИСХОДНОМ тексте говорю

> В строке статуса написано. Ставишь курсор куда нужно и смотришь.

И каждый раз при изменении кода править номер? Нет, это кошмар

> Assert и использовать

Assert не пойдёт, так как это не утверждение, программ должна вывести строку и работать дальше


 
Юрий Зотов ©   (2006-03-26 12:15) [5]

> Wolfram ©   (26.03.06 12:06) [4]

А если подумать?

if ... then
try
 Assert(...)
except
 on E: EAssertionFailed do  
   ... // Парсим строку сообщения, выводим имя юнита и номер строки
end;


 
Wolfram ©   (2006-03-26 12:30) [6]


> Юрий Зотов

охренеть можно от такой реализации :) а попроще никак?


 
Kerk ©   (2006-03-26 12:32) [7]

Куда проще-то?


 
Nikolay M. ©   (2006-03-26 12:32) [8]

В самом примитивном варианте

ShowMessage ("Unique GUID").

Лучше Assert-a тем, что для каждой логической точки отладки гуид будет один и тот же, а не плавающий номер строки. Плюс для Assert-a при отладки из-под IDE нужно будет отключить Stop on delphi exception, что не всегда полезно.
Но искать в исходном тексте расставленные гуиды, конечно, не так удобно, как конкретный номер строки.


 
Ketmar ©   (2006-03-26 17:44) [9]

>Nikolay M. ©   (26.03.06 12:32) [8]
не обязательно отрубать все "delphi exceptions". можно сказать, чтобы на ассерты внимания не обращало.



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

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

Наверх




Память: 0.48 MB
Время: 0.034 c
1-1141495041
lookin
2006-03-04 20:57
2006.04.16
Как исключить свойство из компонента


15-1143542456
McSimm
2006-03-28 14:40
2006.04.16
Подскажите какие-нибудь команды для Делфи с описанием


1-1140536806
SurgeonY
2006-02-21 18:46
2006.04.16
Linking VC++ static lib in Delphi (or BCB) project


15-1142848842
Nsk3D
2006-03-20 13:00
2006.04.16
*.ntf


2-1144040924
dera
2006-04-03 09:08
2006.04.16
Как программно "привязать" DBGrid к DataSource?