LibKing » Книги » comp-programming » Сергей Парижский - Delphi. Учимся на примерах

Сергей Парижский - Delphi. Учимся на примерах

Тут можно читать онлайн Сергей Парижский - Delphi. Учимся на примерах - бесплатно полную версию книги (целиком). Жанр: comp-programming, издательство "МК-Пресс", год 2005. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Сергей Парижский - Delphi. Учимся на примерах
  • Название:
    Delphi. Учимся на примерах
  • Автор:
  • Жанр:
  • Издательство:
    "МК-Пресс"
  • Год:
    2005
  • ISBN:
    ISBN 966-8806-02-6
  • Рейтинг:
    4/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Ваша оценка:

Сергей Парижский - Delphi. Учимся на примерах краткое содержание

Delphi. Учимся на примерах - описание и краткое содержание, автор Сергей Парижский, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Данная книга — продолжение предыдущей книги автора, "Delphi. Только практика". Также как и в "Delphi. Только практика", в данном издании подробно рассмотрены программы для сетей, различные шуточные программы, простые игрушки, некоторые полезные приложения, разработка приложений в стиле Windows XP. В частности, здесь можно найти такие примеры как бесплатная отправка SMS, FTP-клиент, простое шифрование, CGI-сценарии и многое другое. Описаны методы работы с системным реестром Windows и INI-файлами, а также некоторые важные аспекты программирования на системном уровне с применением функций Windows API. Для облегчения понимания программ каждый пример содержит комментарии сложных строк кода.

Книга ориентирована как на тех, кто уже имеет опыт создания приложений в Delphi, так и на начинающих программистов. Для начинающих пользователей Delphi в конце книги добавлено приложение с описанием синтаксиса языка программирования Object Pascal.

Delphi. Учимся на примерах - читать онлайн бесплатно полную версию (весь текст целиком)

Delphi. Учимся на примерах - читать книгу онлайн бесплатно, автор Сергей Парижский
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

Таблица 8.2. Свойства первого компонента Label

Свойство Значение Пояснение
Caption Попадания: Надпись метки
Font.Color clLime Цвет шрифта — светло-зеленый
Font.Name Courier New Название шрифта
Font.Size 12 Размер шрифта
Font.Style [fsBold] Начертание шрифта — полужирное
Left 16 Отступ слева
Top 16 Отступ сверху

Разместите на форме еще один компонент Label и измените его свойства согласно табл. 8.3.

Таблица 8.3. Свойства второго компонента Label

Свойство Значение Пояснение
Name popad Новое имя компонента
Caption 0 Надпись метки
Font.Color clRed Цвет шрифта — красный
Font.Name Courier New Название шрифта
Font.Size 16 Размер шрифта
Font.Style [fsBold] Начертание шрифта — полужирное
Left 120 Отступ слева
Top 16 Отступ сверху

Разместите на форме третий компонент Label, который будет отображать предельное число "попаданий", и измените его свойства согласно табл. 8.4.

Таблица 8.4. Свойства третьего компонента Label

Свойство Значение Пояснение
Caption /10 Надпись метки
Font.Color clRed Цвет шрифта — красный
Font.Name Courier New Название шрифта
Font.Size 16 Размер шрифта
Font.Style [fsBold] Начертание шрифта — полужирное
Left 144 Отступ слева
Top 16 Отступ сверху

Напоследок разместите на форме компонент Timer категории System. Результат оформления формы должен соответствовать рис. 8.1.

Рис. 8.1. Форма для игры "Успей щелкнуть"

Разработка программного кода

Изменение формы окна на эллиптическую реализуется в обработчике события OnCreate формы. Для этого необходимо объявить глобальную переменную forma типа HRGN, которая будет содержать размеры окна:

var

Form1: TForm1;

forma: HRGN;

В обработчик события OnCreate добавьте следующий код:

procedure TForm1.FormCreate(Sender: TObject)

begin

Randomize;//включаем генератор случайных чисел

forma:= CreateEllipticRgn(0, 0, Form1.Width, Form1.Height); //вид окна

//применяем новый вид окна

SetWindowRgn(Handle, forma, True);

end;

Здесь мы задаем окно в виде эллипса и применяем новый вид окна.

Каждую секунду форма должна случайным образом менять свои координаты в пределах экрана. Это будет реализовано в обработчике события Timer1.OnTimer:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Form1.Top:= Random(Screen.Height) + 1; //случайная высота

Form1.Left:= Random(Screen.Width) + 1;//случайная ширина

end;

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

Теперь выделите все компоненты и саму форму и создайте для них общий обработчик события OnMouseDown:

procedure TForm1.popadMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

if StrToInt(popad.Caption) < 10 then begin//если попаданий меньше 10

//Перемещаем окно в случайную позицию по вертикали

Form1.Top:= Random(Screen.Height) + 1;

//Изменяем положение по горизонтали

Form1.Left:= Random(Screen.Width) + 1;

//Увеличиваем счетчик "попаданий" на единицу

popad.Caption:= IntToStr(StrToInt(popad.Caption) + 1);

//Увеличиваем скорость перемещения окна на 100 мс

Timer1.Interval:= Timer1.Interval – 100;

end;

if popad.Caption = '0' then begin//если игрок попал 10 раз

Timer1.Enabled:= False;//останавливаем игру

Form1.Position:= poDesktopCenter;//окно – в центр экрана

//сообщаем о победе

ShowMessage('Вы попали по окну 10 раз!');

if Application.MessageBox('Игра', 'Играть еще раз?', mb_yesno + mbtaskmodal + mb_iconQuestion) = idYes

then{предлагаем сыграть еще раз}

begin

popad.Caption:= '0';//сброс результатов

//Придаем окну эллиптическую форму

forma:= CreateEllipticRgn(0, 0, Form1.Width, Form1.Height);

SetWindowRgn(Handle, forma, True);

//Устанавливаем начальную скорость перемещения окна

Timer1.Interval:= 1000;

Timer1.Enabled:= True;//начинаем игру

end

else Halt;//выход из игры

end;

end;

При каждом "попадании" выполняется проверка: было ли это "попадание" последним. Если да, то просто пополняем счетчик попаданий и увеличиваем скорость перемещения формы на 100 мс. Если игрок сделал последнее "попадание", то останавливаем игру, выводим окно в центр экрана и показываем сообщение о том, что игра успешно окончена. После этого отображаем окно с вопросом: следует ли начинать игру заново. Если пользователь отказывается играть, то просто выходим из программы. Если пользователь хочет сыграть сначала, то обнуляем все результаты и начинаем игру заново.

Окно программы в процессе игры представлено на рис. 8.2.

Рис. 8.2. Игра "Успей щелкнуть" в действии

Полный исходный код модуля

Полный исходный код программного модуля игры "Успей щелкнуть" представлен в листинге 8.1.

Листинг 8.1. Программный модуль игры "Успей щелкнуть"

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type TForm1 = class(TForm)

Label2: TLabel;

popad: TLabel;

Label3: TLabel;

Timer1: TTimer;

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure popadMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

forma: HRGN;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject)

begin

Randomize;//включаем генератор случайных чисел

forma:= CreateEllipticRgn(0, 0, Form1.Width, Form1.Height); //вид окна

//применяем новый вид окна

SetWindowRgn(Handle, forma, True);

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Form1.Top:= Random(Screen.Height) + 1; //случайная высота

Form1.Left:= Random(Screen.Width) + 1; //случайная ширина

end;

procedure TForm1.popadMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

if StrToInt(popad.Caption) < 10 then begin //если попаданий меньше 10

//Перемещаем окно в случайную позицию по вертикали

Form1.Top:= Random(Screen.Height) + 1;

//Изменяем положение по горизонтали

Form1.Left:= Random(Screen.Width) + 1;

//Увеличиваем счетчик "попаданий" на единицу

popad.Caption:= IntToStr(StrToInt(popad.Caption) + 1);

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


Сергей Парижский читать все книги автора по порядку

Сергей Парижский - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Delphi. Учимся на примерах отзывы


Отзывы читателей о книге Delphi. Учимся на примерах, автор: Сергей Парижский. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img