Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Создание Главного Меню в Игре - Часть 2 - EDIT

Оформил: XVeL
Автор: Spose
WEB-сайт: http://daddy.mirgames.ru

Итак, мы всё также используем 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;
Тут код примера
Вот в принципе и всё.
Проект Delphi World © Выпуск 2002 - 2024
Автор проекта: USU Software
Вы можете выкупить этот проект.