Страница 1 из 1

Отладка компонентов

СообщениеДобавлено: 25.01.2016 16:00:31
lordgray
Здравствуйте!
Недавно обновился до Lazarus 1.6rc2+FPC3, x86-64, Win7, вылезла проблема при отображении Float полей в DBGrid. Решил отладить - в методы стандартных модулей не входит :(
Порылся по настройкам, вроде все связанное с отладкой включено. Что делать? На форуме нашел информацию, что надо пересобрать FPC с отладочной информацией.
Но хоть тресни, не пойму, при чем тут FPC. И если это действительно так, то как это сделать?
Ну и второй вопрос: не отображаются значения свойств/полей объектов. Так и должно быть, или можно что-то сделать?

Re: Отладка компонентов

СообщениеДобавлено: 26.01.2016 07:36:31
sign
lordgray писал(а): вылезла проблема при отображении Float полей в DBGrid

Включить путь до компонента, тогда отладчик их увидит и подцепит.

lordgray писал(а):не отображаются значения свойств/полей объектов. Так и должно быть, или можно что-то сделать?

Отладчик не отображает результат функций.
Потому, хотите увидеть значение, например, DBGrid.GridStatus, смотрите в отладчике на DBGrid.FGridStatus. А если это функция, то либо присвоить промежуточной переменой, либо войти в функцию.

Re: Отладка компонентов

СообщениеДобавлено: 26.01.2016 09:09:45
iN0k
я бы для начала попробовал пересобрать сам Лазарус ...
Гланое меню - Сервис - Параметры сборки Лазарус - Профиль сборки - Ide в режиме отладки ...

Re: Отладка компонентов

СообщениеДобавлено: 26.01.2016 12:29:33
alexs
lordgray писал(а):вылезла проблема при отображении Float полей в DBGrid

DisplayMask?

Re: Отладка компонентов

СообщениеДобавлено: 26.01.2016 18:34:15
lordgray
sign писал(а):Включить путь до компонента, тогда отладчик их увидит и подцепит.

Вариант, конечно, но раньше не прописывал, и все работало. Да и DBGrid в одном месте, TDataSet в другом, а там еще fields.inc,... Как-то вот оно не так...

sign писал(а):Отладчик не отображает результат функций.

Логично, что-то я сам не додумался. Жаль.

sign писал(а):А если это функция, то либо присвоить промежуточной переменой,

На этом и остановился. Хотя с оригинальными компонентами, это не удобно. Ну да ладно, за 5 лет привыкаю.

alexs писал(а):DisplayMask?

Не. Использую FIBL, где поля Numeric(x,x) - иногда выводиться типа "1,20000000000001". Причем не всегда, но в 90%. И только в 32 битном exe. В x64 все нормально.
Пока решил так:
В TFIBDataSet.OnGetText сделал так:
Код: Выделить всё
var v:Currency;
begin
  v := Sender.Value;
  t := Format('%g', [v]);
end;

И стало все нормально.
Пробовал так делать,
Код: Выделить всё
t := Format('%g', [Round(Sender.Value*100)/100])

все равно лажа.
В общем какие-то проблемы с типом Double

iN0k писал(а):я бы для начала попробовал пересобрать сам Лазарус ...

Пробовал, никак не повлияло.
Отладочную инфу из внешнего файла, переключил на внуть выполнимого. Тоже безрезультатно.