On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru


Самая детальная информация металлические радиаторы отопления kermi тут.




 

Учим DelphiX

Первая Часть

Приветствую, ученик. Ты наверное не раз писал какие-нибудь игрульки на Delphi. Что тебе мешало, если в игре было слишком много графики или игровое поле было огромных размеров? Правильно - тормоза, не те, что в голове, а те, что заставляют игру быть медленнее, чем ты хотел. Есть несколько способов от этого избавиться. Первый - вырезать все излишки графики. Второй - получить доступ к видео памяти, но это у тебя не получится. Третий - использовать Delphi X, который сделает все за тебя. Тебе лишь останется писать игру, как с обычным canvas'ом. Как установить? Легко. Качаете арихив с сайта Мир Delphi в разделе компоненты/DelphiX. Распаковываете его. Запускаете Delphi. Далее выбираете 'Components/add pacages' и добавляете DelphiX. Все готово для работы, приступим.

Вторая часть

Создаем новое приложение, как показанно на рисунке.

Сворачиваем форму (Form1) и делаем следующие изменения:

Как было: uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

Как надо: uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DXClass;

type
TForm1 = class(TDXForm)
private
{ Private declarations }
public
{ Public declarations }
end;

Это поможет нам избезать ошибок, которые могут возникнуть при работе компонентов DelphiX с TForm. Теперь создадим поле для рисования. Это компонент DXDraw. Находим его, как на рисунке.

Ставим его на форму. Размером 640х480 или как вам больше нравится. Меняем свойство Align на AlClient, Deisplay.BitCount с 8 на 16 или 32. И там же мтавим наше разрешение в пунктах Height = 640, Width = 480. Изменим имя (name) на DXDraw без 1. Вот как все должно быть:

Чтобы изображение кажбый раз менялось ставим DXTimer. Вот он:

Ставим параметр Interval на 0, а enabled на false. Теперь изменим события (Events) DXDraw. OnInitialize: пишем там DXTimer1.Enabled := True; //включаем таймер

А в событии OnFinalize пишем DXTimer1.Enabled := false; //выключаем таймер

Теперь переходим непосредственно к отрисовке. В событии DXTimer'а - OnTime пишем if not DXDraw.CanDraw then exit; // Если система не может найти DirectX, то выходим

DXDraw.Surface.Fill(0); // Заполняем все черным, т.е. очищаем экран

Здесь мы можем рисовать линии, точки и т.д. а так же выводить текст. with DXDraw.Surface.Canvas do // на канве DXDraw делаем чего - нить
begin
Brush.Style := bsClear; // Задаем стиль кисти
Font.Color := clWhite; // Цвет текста - белый
Font.Size := 30; // Размер шрифта
Textout(30, 30, 'Hello World'); // Выводим легендарную фразу

Release; // реализуем
end; // заканчиваем работу с поверхностью

DXDraw.Flip; // 'тик' DDraw

Теперь сделаем быстрый выход из программы и переход в полноэкранный режим.

У формы изменяем свойство KeyPreview на true. В событии формы OnKeyDown пишем:

Выход из программы if Key=VK_ESCAPE then
Close;

Меняем режим экрана по Alt+Enter if (ssAlt in Shift) and (Key=VK_RETURN) then
begin
DXDraw.Finalize;

if doFullScreen in DXDraw.Options then
begin
RestoreWindow;

DXDraw.Cursor := crDefault;
BorderStyle := bsSizeable;
DXDraw.Options := DXDraw.Options - [doFullScreen];
end else
begin
StoreWindow;

DXDraw.Cursor := crNone;
BorderStyle := bsNone;
DXDraw.Options := DXDraw.Options + [doFullScreen];
end;
DXDraw.Initialize;
end;

Вот и все. Мы создали бланк приложений с DelphiX. Сохраните и создайте резервную копию.



Литература по Borland Delphi