скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Создание Главного Меню в Игре - Часть 2 - EDIT



Оформил: XVeL
Автор: Spose

Итак, мы всё также используем intf.zip содержащий описание компонентов(кнопок, листбоксов, чекбоксов, эдитов и тэдэ) для DelphiX.
Cначала нужно подключить Intf к игре так:
Uses ..............., intf;//Подключаем Inf к программе
.........................................................................
procedure TForm1.FormCreate(Sender: TObject);
begin
   fsurface:=dxdraw.surface; //Это необходимо
   .........................
end;

.........................................................................
procedure TForm1.DXTimerTimer(Sender: TObject; LagCount: Integer);
begin
   if not dxdraw.CanDraw then exit;
   fsurface:=dxdraw.Surface; //Это необходимо
   ..........................
end;
Теперь включив intf в свою программу, можно и компоненты посоздавать. Компоненты создаются просто:
edit1 := Tdxwedit.Create(form1);
With Edit1 do
begin
   Name := 'Edit1';
   Image := il.Items.Find('Edit');
   Font.Style := [fsbold];
   Font.Color := clYellow;
   Font.Size := 18;
   Font.Name := 'Times New Roman';
   Left := 200;
   Top := 270;
   width := image.Width;
   height := image.height;
   OnChange := EditChange;
   Text := 'C:\GAMES\US';
   focused := true;
end;

//Где edit1:Tdxwedit
Вот процедура EditChange:
begin
//Тут чего нибудь делайте с текстом
end;
Отрисовка производится так:
edit1.DoDraw;//Отрисовка Edit'a
И остается только обработка на поведение мыши и на нажатие кнопок на клавиатуре:
procedure TForm1.DXDrawMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
   if ptinrect(edit1.BoundsRect,mouse.CursorPos) then //Если мышь над Едитом то выделяем его
   begin
      edit1.Font.Style:=[fsBold];
      edit1.Font.Color:=clWhite;
      edit1.Focused:=true;
   end else
   begin
      edit1.Font.Style:=[];
      edit1.Font.Color:=clYellow;
      edit1.Focused:=false;
   end;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
   edit1.KeyDown(key,shift);
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
   edit1.KeyPress(key);
end;
Тут код примера
Вот в принципе и всё.





Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook