Проводим рефакторинг и дальнейшую отладку TPASSMomentum (Delphi 7: отладчик, private, protect) |
![]() |
![]() |
Автор megabax | ||||
10.08.2009 г. | ||||
Проводим рефакторинг и дальнейшую отладку класса TPASSMomentum (Delphi 7: отладчик, private, protected, поиск)Сегодня мы займемся переписыванием кода модуля PASSIndicators. Начнем с класса TPASSIndicator. Вот как он у нас объявлен:
А мы сделаем объявление таким (изменения выделены красным цветом):
А теперь реализуем сам AfterConstruction
После этого мы можем удалить метод AfterConstruction из TPASSMomentum. Удалим из него так же и определение полей FParameters и FPriceSource - они уже определены в TPASSIndicator. Теперь запускаем программу и вылавливаем еще один "баг" - у нас ругается на строку lbResult.Caption:= intToStr(FIndicator.GetParameterByName('Value')); Все верно, это ошибка. Вместо нее следует записать lbResult.Caption:= FloatToStr(FIndicator.GetResultByFieldName('Value')); Иными словами, для вычисления результата индикатора нам нужно пользоваться не функцией GetParameterByName, а функцией GetResultByFieldName. После исправления опять запускаем программу и получаем новое сообщение об ошибке: Данное сообщение достаточно информативно, и мы, не пользуясь отладчиком вполне можем найти, где ошибка. Должны быть, мы где то указали 'PriceFieldType' dvtcnj PriceFieldType. Иными словами, обращаемся к полю "PriceFieldType", которого у нас действительно нет, вместо того, что бы обратимся к полю, имя которого у нас хранится в переменной PriceFieldType. Для поиска просто воспользуемся поиском. Входим в пункт меню "Search" --> "Find"* Находим и исправляем эту строку*: Пишем вместо неправильной строки правильную: Pbeg:=FPriceSource.GetDataByFieldNameAndIndex(FPriceFieldType,FPriceSource.CurrentItemIndex-FDT); Запускаем программу, тестируем снова. На этот раз она выдает какой то результат: Правда, тестирование на этом не кончается. Теперь нам нужно проверить, а правильный ли результат выдала программа. Но этим мы займемся на следующем уроке.
Скриншоты, помеченные знаком * , являются цитатами и иллюстрациями в соответствии со ст. 1274 ГК РФ программного продукта "Delphi", авторское право на который принадлежит "Borland Software Corporation".
|
||||
Последнее обновление ( 27.07.2013 г. ) |
« След. | Пред. » |
---|