Шупрута В.В. - Delphi 2005 - Учимся программировать (1080891), страница 14
Текст из файла (страница 14)
2.25 т Добавление точек остановка с помощью контекстного менюИнформацию о добавленных точках останова можно посмотреть в специальном окне (рис. 2.26), включить которое можно нажатием комбинацииклавиш Ctrl+Alt+B или с помощью пунктов меню View >• Debug Windows >•Breakpoints. В окне отображаются все точки останова модуля, а также номерастрок, на которых они находятся. Для быстрого перемещения к какой-либоточке достаточно выполнить на ее имени двойной щелчок мышью.В этом же окне можно с помощью переключателей включать или выключатьсоответствующие точки останова, а также добавлять или удалять их.Как же работают точки останова? После того как все точки выставлены,программа запускается обычным способом (с помощью меню Run).
Как толькопрограмма дойдет до инструкции, напротив которой стоит точка останова,ГЛАВА 2 т Создаем первые проекты в Borland! Delphi 2005]®WH*onnllВ// Вычисление хисг.риро<нактл2г4Z2522,6227i f D<0 then// £сл.тг хкскрт&янзнт отрмЦйТЬХШЖ, то выводим сообщение// о ток, что уравнение н& гячсеет корнейbeginLabelS.Text:•'Уравнение не имеет действительных корней 1 ;end// Если лисг-рипанпнт больше или равен 0г то// Вычисляем корни уравненияelsebegin// Выводят* рассчитанные значения корнейLabel5.Text:-'Xl - •+Xl.ToString+' X2 - '+Х2-ToStcing;end;241 о procedure TWinForinl .Button2 Click (sendee: System.Object; e: Systffl..•' • • Г~1Э5: 1 ilnsert:t Pass Count [&оцд0%WinForml.pas 223WhForml.pas : 234WinForml.pas i 235tch List i J»Thread Status! TgEvent Log i ЭLocal Variables jРис.
2.26 т Просмотр информации о точках остановавыполнение программы останавливается. Для дальнейшего выполненияпрограммы следует нажать клавишу F8 или воспользоваться пунктами Run >•Step Over главного меню. Как только вы продолжите выполнение программыодним из этих двух способов, будут выполнены все инструкции вплоть доследующей точки останова. Применение точек' останова зачастую помогаетпонять, в каком месте возникает ошибка.Теперь скажем несколько слов о поиске ошибок с помощью списка просмотразначений переменных (Watches list).
Во время выполнения программы довольночасто случается так, что внешне все выглядит вроде бы нормально - программаработает, ошибок времени выполнения не возникает, но итоговый результатнеправильный. Ошибка зачастую кроется в неправильных расчетах - неверноСоздаем первый проект для Microsoft .NET Frameworkиспользуются переменные либо неправильно записаны вычисляемые выражения. В этом случае полезным оказывается просмотр списка значений переменных.
Используется данный список, как правило, совместно с точкамиостанова программы.Итак, чтобы сформировать данный список, необходимо:1. Установить курсор на переменную, значение которой мы хотим отслеживать по ходу выполнения программы.2. Нажать комбинацию клавиш Ctrl+F5 или же воспользоваться пунктамиконтекстного меню Debug >• Add Watch at Cursor (рис. 2.27).После того как желаемые переменные добавлены, список просмотра можнопосмотреть в том же окне, где мы наблюдали точки останова.
Для отображенияэтого окна необходимо воспользоваться комбинацией клавиш Ctrl+Alt+W илипунктами главного меню View >• Debug Windows >• Watches. В результатеотобразится то же самое окно, у которого будет активна вкладка Watch List(рис. 2.28).CJose PageShow DesginerOpen file at CursorCM+F4Ctrf+ЕпсяMew Edit WindowFie FormatTopic Search•FlCompjete class at cursor Shft+Ctrl+CAdd To-Do Ilem...УCut<кзShft+Ctrl+TCtri+XCopvCtr!+CPjsteCtrM-VToggle Bookmarks•goto Bookmarks>•I: e*ugС leaf bookmarksReadonly•bJessageVkw»$f-Toggle BreakpointВEvaluate/Modify...^Add S * c h e t Cursor СЫ+Р5Fo|d»Ц, ; ,Unfold•£ Ш ЙРЙ Adcfeess.,.Toggle CommentCtrl+/*V№F5»+,-.'"CEUProperties*Refactorng•Find•Рис. 2.27 т Добавление переменной в список просмотраГЛАВА 2 • Создаем первые проекты в Borland Delphi 2005219 |exit;end;end;// Начисление222 I225226 I22?2Z'i/.гз230за |232 I33Шil D<0 then// Если дискриминант отрицателен, то выводим сообщение// о том, что уравнение не имеет корнейbeginLatoe15.Text:•'Уравнение не имеет действительных корней1end// Если яискриккнант больше или равен 0, то// Вычисляем корни уравненияelsebegin/ / Выводи* рассчитанные зкаченя* корнейLobelS.Text:='Xl • '+Xl.ToString+' X2 - '+Х2.ToScring;end;ч&е[process not accessible][process not accessible][process not accessible]^Breakpoint List | "Й Cal Stack]^Watch List | ^Thread Status | 'QEvent Log I ^ Local Variables IРис.
2.28 т Просмотр списка контролируемых переменныхПока значение переменным не присвоено, то в поле Value (Значение)отображается надпись Process inaccessible (Процесс недоступен). После запускапрограммы и последовательного прохождения точек останова (для наглядности явыбрал точки останова в местах присвоения значений переменным) вы увидите,как заполняются соответствующие поля Value в окне Watch List (рис. 2.29).Применение такого списка очень часто может быть полезным для проверкиправильности значений переменных на различных этапах выполнения программы.На этом мы закончим рассмотрение основных приемов отладки программыи перейдем к заключительной части создания программы - ее окончательнойнастройке.Создаем первый проект для Microsoft .NET FrameworkНеззадеВох1соп.Information) ;exit;end;end;// Вычисление хискриякханта«9ггп221222I2252292302312J22 J3if D<0 then// £сля дискриминант стрицаг&лех, то выводит* сообщения// о том, что уравнения не :океет корнейbeginLabels-Text:"'Уравнение не имеет действительных корней1end// ЕСЛИ дискриминант больше или pases 0, то// Вычисляем корки уравненияelsebegin/ / SLIUCSHM рассчитанные значения<и> • Ж237: 1корней]lnsettWatch List - Thread 1804^Breakpoint list! I f l Cal stack |^fvVatd4Jst-Th»ad 1604 ^Thread Status | "QEvent Log i ^Local VariablesРис.
2.29 т Использование точек останова и списка просмотра значений переменныхВыполняем окончательнуюнастройку программыПосле того как программа отлажена, можно выполнить ее окончательнуюнастройку: задать иконку (значок) приложения, а также задать атрибутывыполняемого файла (сборки).Чтобы присвоить приложению значок, необходимо:1. В меню Project выбрать команду Options.2.
В появившемся диалоговом окне Project Options выбрать раздел Application.wГЛАВА 2 т Создаем первые проекты в Borland Delphi 20053. Щелкнуть по кнопке Load Icon... и, используя стандартное окно просмотра папок, найти подходящий значок (файл с расширением ico). Значокприложения отобразится в поле Icon (рис. 2.30).Formsh Compelir| .Compelir MessagesLni keri Driectorei s/Condtoi nasl" Appcl atoi n setni gs *Icon:В Debugger•••" Lnvironnwnt BlockLoad Icon...- Output settings ,^~~"Target file extension;Рис. 2.30 т Указание значка приложения в окне Projects OptionsЗначения атрибутов выполняемого файла (в терминологии .NET - сборки)отображаются на вкладках окна Свойства (рис.
2.31), которое появляетсяпосле выбора одноименной команды в контекстном меню.Значения атрибутов можно установить в файле проекта. Для этого необходимо в меню Project (Проект) выбрать команду View Source (Просмотр).В табл. 2.13 приведено описание некоторых атрибутов выполняемого файла,а в листинге 2.6 - фрагмент кода, устанавливающий значения атрибутовпрограммы вычисления корней квадратного уравнения.Таблица 2.13т Атрибуты сборкиАтрибут сборкиОписаниеAssemblyTitleНазвание программыГде отображается атрибутВ строке Описание вкладки Общие окнаСвойстваAssemblyDescriptionКраткое описание программыВ поле Значение вкладки Версия окнаСвойстваAssemblyCopyrightИнформация об авторских правахВ строке Авторские права вкладкиВерсия окна СвойстваСоздаем первый проект для Microsoft .WET Framework\%ЖТаблица 2.13 т Атрибуты сборки (окончание)Атрибут сборкиОписаниеГде отображается атрибутAssemblyProductИнформация о продуктеВ группе элементов Имя элемента привыборе пункта Название продуктавкладки Версия окна СвойстваAssemblyVersionИнформация о версии продуктаТам же, при выборе пункта ВерсияAssemblyCompanyИнформация о производителеТам же, при выборе пунктаПроизводительпродукта8 время Файла:1.0.0.0Описание:Решение квадратных уравненийАвторские права: В,В.
Шупруга, 2005Дополнительные сведенийИ мя э леменга:Assembly V«sionВерсия продуктаВерсия ФайлаВнутреннее имяИсходное имя ФайлаЗначение:Программа позволяетвычис лить кормиквадратного уравненияНазвание продуктаПроизводительТоварные знакиЯРис. 2.31 т Значение атрибутов сборки в окне СвойстваЛистинг 2.6 • Задание значений атрибутов в файле проектаprogram111Projectl;{%DelphiDotNet Assembly-Compiler${SystemRoot)\microsoft.net\framework\vl.1.4322\System.dll'}{%DelphiDotNetAssemblyCompiler${SystemRoot)\microsoft.net\framework\vl.1.4322\System.Data.dll'}{%DelphiDotNetAssemblyCompiler$(SystemRoot)\microsoft.net\framework\vl.1.4322\System.Drawing.dll'}wГЛАВА 2 • Создаем первые проекты в Borland Delphi 2005{%DelphiDotNetAssemblyCompiler'$(SystemRoot)\microsoft.net\framework\vl.l.4322\System.Windows.Forms.dll'}{%DelphiDotNetAssemblyCompiler'$(SystemRoot)\microsoft.net\framework\vl.1.4322\System.XML.dll'}{$R 'WinForml.TWinForml.resources' 'WinForml.resx 1 }usesSystem.Reflection,System.Runtime.CompilerServices,System.Windows.Forms,WinForml in 'WinForml.pas' {WinForml.TWinForml:System.Windows.Forms.Form};{$R *.res}{$REGI0N 'Program/Assembly Information1}[assembly: AssemblyDescription('Программа позволяет вычислить'*'корни квадратного уравнения')][assembly: AssemblyConfiguration('')][assembly: AssemblyCompany('')][assembly: AssemblyProduct('Учебная программа')][assembly: AssemblyCopyright('B.B.
Шупрута, 2005')][assembly: AssemblyTrademark('')][assembly: AssemblyCulture('')][assembly: AssemblyTitle('Решение квадратных уравнений')][assembly: AssemblyVersion('1.0')][assembly: AssemblyDelaySign(false)][assembly: AssemblyKeyFile('')][assembly: AssemblyKeyName('')]{$ENDREGION}[STAThread]beginApplication.Run(TWinForml.Create);end.На этом разработка программы (проекта для .NET) закончена. Следующаячасть главы посвящена разработке проектов для платформы Win32.Создаемпервый проект для Win32В начале этой главы мы подробно рассмотрели процесс написания программы для .NET, рассчитывающей корни квадратного уравнения.