Библиотека knigago >> Компьютеры: Разработка ПО >> Программирование: прочее >> Учебник по Delphi 4.0


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1453, книга: Ф — значит фэнтези
автор: Михаил Геннадьевич Кликин

Книга «Ф — значит фэнтези» Михаила Кликина — незаменимое пособие для тех, кто хочет углубиться в жанр фэнтези. Кликин, признанный эксперт в области фантастики, мастерски сочетает энциклопедические знания с собственным критическим анализом. Читатели отправятся в путешествие по обширному миру фэнтези, исследуя его истоки, развитие и многочисленные поджанры. От классических произведений Толкина до современных постапокалиптических историй, от высоких и серьезных книг до легкого и развлекательного...

Автор неизвестен - Учебник по Delphi 4.0

Учебник по Delphi 4.0
Книга - Учебник по Delphi 4.0.  Автор неизвестен  - прочитать полностью в библиотеке КнигаГо
Название:
Учебник по Delphi 4.0
Автор неизвестен

Жанр:

Литература ХX века (эпоха Социальных революций), Учебники и самоучители по компьютеру, Современные российские издания, Windows, Программирование: прочее, Pascal, Delphi, Lazarus и т.п.

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Учебник по Delphi 4.0"

Аннотация к этой книге отсутствует.

Читаем онлайн "Учебник по Delphi 4.0". [Страница - 51]

элемент TMemo информации о количестве доступной виртуальной памяти.

ShowMessage

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

Процедура ShowMessage (из модуля Dialogs) идеально подходит для этой цели Она позволяет вывести строку любой длины в простом модальном диалоговом окне. Вам только следует создать строку для вывода и передать ее процедуре (можно также использовать MessageDIg, но в нем слишком много шашечек и бантиков, которые требуют немалых усилий для достижения того же эффекта).

ShowMessage получает в качестве параметра одну строку, для создания которой я предпочитаю использовать функцию Format, она идеально подходит для этого, будучи одновременно простым и мощным инструментом в умелых руках.

Рассмотрим простой пример. Используем этот метод для вывода информации, получаемой от уже использовавшейся функции GlobalMemoryStatus.

Создадим новое приложение и поместим TButton в основную форму. Обработчик события OnClick будет выглядеть следующим образом.

procedure TFormI.ButtonlClick(Sender: TObject);

var MemStat: TMemoryStatus;

begin

MemStat.dwLength:= SizeOf(TMemoryStatus);

GlobalMemoryStatus(MemStat);

with MemStat do ShowMessage(Format('Memory load: %d%%'#13 +

'Total physical: %d'#13+'Available physical: %d'#13 +

'Total page file: %d'#13 + 'Available page file: %d'ftl3 +

'Total virtual: %d'#13 + 'Available virtual: %d',

[dwMemoryLoad, dwTotalPhys, dwAvailPhys, dwTotalPageFile,

dwAvailPageFile, dwTotalVirtual, dwAvailVirtual]));

end;

Заметьте, что я внес в строку несколько символов #13 (ASCII-символ возврата каретки). Это позволяет разбить строку при выводе на несколько строк, что существенно облегчает чтение информации. На рис 2.23 показано, что получится после запуска программы и щелчка на кнопке.

Судя по результатам Memory load и Available physical, представленным на рисунке, мне стоит всерьез подумать о наращивании памяти своего компьютера.


Книгаго: Учебник по Delphi 4.0. Иллюстрация № 86 Рис 2.23. Использование функции ShowMessage для вывода отладочной информации.

Вывод на консоль

Еще один способ вывода отладочной информации — вывод на консоль с использованием процедур Write и WriteLn. Вы можете конвертировать проект в консольное приложение, например, выбрав соответствующую опцию (команду Project/Options, вкладку Linker и опцию Generate Console Application) или поместив директиву $APPTYPE CONSOLE в главный DPR-файл. Учитывая, что ваше приложение — не консольное, воспользуйтесь возможностями условной компиляции и используйте директиву $APPTYPE как показано ниже:

{$ifdef Debug}

{$APPTYPE CONSOLE}

{$endif}

Теперь вывод на консоль будет осуществляться только в отладочной версии вашего приложения.

Если вы попытались использовать функцию Write или WriteLn и получили сообщение об ошибке I/O Еггог, значит, вы забыли сделать проект консольным приложением.

Обратите внимание, что здесь применяется тот же код, что и раньше, но теперь мы используем вывод на консоль вместо ShowMessage. Убедитесь, что вы создаете консольное приложение, и измените обработчик так, как показано ниже.

procedure TFormI.ButtonlClick(Sender: T0bject);

var MemStat: TMemoryStatus;

begin

MemStat.dwLength:= SizeOf(TMemoryStatus);

GlobalMemoryStatus(MemStat);

with MemStat do

begin

WriteLn(Format('Memory load: %d%%',[dwMemoryLoad]));

WriteLn(Format('Total physical: %d',[dwTotalPhys]));

WriteLn(Format('Available physical: %d',[dwAvailPhys]));

WriteLn(Format('Total page file: %d',[dwTotalPageFile]));

WriteLn(Format('Available page file: %d',[dwAvailPageFile]));

WriteLn(Format('Total virtual: %d',[dwTotalVirtual]));

WriteLn(Format('Available virtual: %d',[dwAvailVirtual]));

end;

end;

Результат показан на рис. 2.24.

Книгаго: Учебник по Delphi 4.0. Иллюстрация № 87

Рис. 2.24. Использование консоли для вывода отладочной информации.

Опытные пользователи Pascal заметят, что функция Format использовалась там, где это не было необходимо (WriteLn имеет свои возможности форматирования). Однако я везде использую Format как мощный инструмент; кроме того, используя везде одну лишь функцию Format, я избавляюсь от необходимости помнить два набора правил форматирования.

Запись в Log-файл

Запись отладочной информации в файл протокола (Log-файл) существенно отличается от предыдущих приемов записи, так как это уже нельзя назвать «быстро и грязно». Это отличная технология, которую можно --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.