Пятница, 22 Ноября 2024, 22:54

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Результаты поиска
Александр5Дата: Четверг, 09 Мая 2013, 17:19 | Сообщение # 1 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр
частый гость
Сейчас нет на сайте
Решил попробывать писать код в Fire monkey

одно хорошо красивый стиль

а вот почему код не работает

Код


procedure TForm1.FormCreate(Sender: TObject);  
var SR1,SR2,SR3 : TSearchRec;  
begin  
    IniFilesLibx:=TIniFile.Create(ApplicationPath(2)+'LibxEdit.ini');  
    if FindFirst(ApplicationPath(2)+'LibxEditFiles\Lang\rus.data', faAnyFile, SR1) = 0 then  
    begin  
      repeat  
        NL1.Visible:=True;  
      until FindNext(SR1) <> 0;  
    end;  

    if FindFirst(ApplicationPath(2)+'LibxEditFiles\Lang\rus.data', faAnyFile, SR1) <> 0 then  
    begin  
      repeat  
        ShowMessage('Русский перевод необходим для запуска убедитесь что русский язык есть Ошибка 0 не найден файл rus.data');  
        Application.Terminate;  
      until FindNext(SR1) <> 0;  
    end;  
    if FindFirst(ApplicationPath(2)+'LibxEditFiles\Lang\eng.data', faAnyFile, SR2) = 0 then  
    begin  
      repeat  
        NL2.Enabled:=True;  
      until FindNext(SR2) <> 0;  
    end;  
    if FindFirst(ApplicationPath(2)+'LibxEditFiles\Lang\eng.data', faAnyFile, SR2) <> 0 then  
    begin  
      repeat  
        NL2.Enabled:=False;  
      until FindNext(SR2) <> 0;  
    end;  
    FindClose(SR1);  
    FindClose(SR2);  
end;


Вот это не работает
NL2.Enabled:=False;

NL1.Visible:=True;

Компонент MenuBar

Пишу код на XE3 в библиотеки Fire Monkey Metropolis UI Application

И еще просьба сказать как запускать в других ОС эти проги я слышал что можно там только это и пишут про XE3

Добавлено (26.04.2013, 09:29)
---------------------------------------------
С этим разобрался но вот как програмно иконку сменить в Firemonkey если в Application нету Icon

Добавлено (27.04.2013, 09:50)
---------------------------------------------
Скажите пожалуйста и срочно как вызвать диалог выбора папки в FireMonkey или есть может у кого компонент для FireMonkey буду очень благодарен

Добавлено (30.04.2013, 13:27)
---------------------------------------------
В XE3 нашел компонент FastScript

Скажите что за скриптовой движок и как на нем работать

Добавлено (06.05.2013, 11:39)
---------------------------------------------

Код


unit Unit1;

interface

uses
   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus, Vcl.ExtDlgs,Vcl.imaging.PngImage;

type
   TForm1 = class(TForm)
     MainMenu1: TMainMenu;
     N1: TMenuItem;
     N2: TMenuItem;
     N3: TMenuItem;
     N4: TMenuItem;
     N5: TMenuItem;
     N6: TMenuItem;
     N7: TMenuItem;
     N8: TMenuItem;
     N9: TMenuItem;
     N10: TMenuItem;
     N11: TMenuItem;
     N12: TMenuItem;
     N13: TMenuItem;
     OpenPictureDialog1: TOpenPictureDialog;
     procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
     procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
     procedure N1Click(Sender: TObject);
     procedure N3Click(Sender: TObject);
     procedure FormCreate(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
   end;
Type
   PRList=^RList;
   RList=Record
     Inf:String;
     Link:PRList;
   End;
TGameRead=class(TThread) // класс для таймера игры
   private
   protected
   procedure Execute;override; // Запуск
   procedure Tic;              // Один тик программы
end;
var
   Form1: TForm1;
   ActivMenu:Boolean;
   ActivByte:Byte;
   {Png Image Maps Save}
   Buffer,Flur:TPngImage;
   LEFT1,TOP1,WIDTH1,HEIGHT1:Array[0..100] of Integer;
   GameRead:TGameRead;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
   Buffer:=TPngimage.Create;
   Flur:=TPngImage.Create;
   GameRead:=TGameRead.Create(False);
   GameRead.Priority:=TpHighest;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
   Shift: TShiftState);
begin
   if (Key = 122)And(ActivMenu = true)and(ActivByte = 0) then begin
     ActivByte:=1;
     ActivMenu:=False;
     Form1.Menu:=Nil;
   end;
   if (Key = 122)And(ActivMenu = true)and(ActivByte = 1) then begin
     ActivByte:=0;
     ActivMenu:=False;
     Form1.Menu:=Form1.MainMenu1;
   end;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
   if Key = 122 then begin
     ActivMenu:=True;
   end;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
   Application.Terminate;
end;

procedure TForm1.N3Click(Sender: TObject);
begin
   if OpenPictureDialog1.Execute then begin

     Flur.LoadFromFile(OpenPictureDialog1.FileName);
     Left1[0]:=0;
     Top1[0]:=0;
     Width1[0]:=Flur.Width;
     Height1[0]:=Flur.Height;
     N3.Enabled:=False;
   end;
end;

{ TGameRead }

procedure TGameRead.Execute;
begin
   repeat
     synchronize(Tic);
   until Terminated

end;

procedure TGameRead.Tic;
begin
   BitBlt(Buffer.Canvas.Handle,LEFT1[0],TOP1[0],LEFT1[0]+WIDTH1[0],TOP1[0]+HEIGHT1[0],Flur.Canvas.Handle,0,0,SRCCOPY);
   BitBlt(Form1.Canvas.Handle,LEFT1[0],TOP1[0],LEFT1[0]+WIDTH1[0],TOP1[0]+HEIGHT1[0],Buffer.Canvas.Handle,0,0,SRCCOPY);
end;

end.


Слушайте в чем ошибка почему картинки не выводится пишу в XE3

Если нажать f4 то вот ошибка



Добавлено (06.05.2013, 14:39)
---------------------------------------------
есть вообще другой путь вывода графики на форму в определенных координатами

если делать так Form1.Canvas.Draw(X1,Y1,Flur); а потом стирать канву этот способ не подойдет

Это быдла код а не код мне нужно выводить спрайты PNG на форму в определенных координатах тогда и передвигать спрайты можно будет может посоветуете движок но чтобы на XE3 работало пожалуйста ответте лучше конечно как это сделать самому

Добавлено (09.05.2013, 17:19)
---------------------------------------------
Как в DXImageList добавить сразу много изображений библиотека DelphiX

Александр5Дата: Суббота, 27 Апреля 2013, 15:55 | Сообщение # 2 | Тема: Вопросы по XE3 библиотеки FireMonkey и компонентов для FMX
частый гость
Сейчас нет на сайте
Скажите пожалуйста как в FireMonkey вызвать диалог выбора диретории или дайте компонент для FMX
Александр5Дата: Воскресенье, 14 Апреля 2013, 17:03 | Сообщение # 3 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр
частый гость
Сейчас нет на сайте
Вроде бы правильно. Попробуй скомпилировать и загрузить из программы. Пробуй, экспериментируй, читай мануалы...

Если бы знать как

Добавлено (12.04.2013, 13:27)
---------------------------------------------
Скажите какой запрещенный цвет шрифта выбрать которым бы нельзя было пользоваться может clBtnFace

просто если цвет шрифта будет такой же как цвет прозрачности то текст не будет видно. Я использую 2 формы и TransparentColor

Добавлено (14.04.2013, 17:03)
---------------------------------------------
Скажите как сделать поиск файла по всему диску именно файла

Александр5Дата: Понедельник, 08 Апреля 2013, 16:06 | Сообщение # 4 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр
частый гость
Сейчас нет на сайте
Можно сохранять не всю канву, а только тот участок, который будет перекрыт картинкой - так экономичнее по памяти.

как это сделать и потом вернуть как а отрисовку я уже сделал

И еще 1 вопрос вот код там есть запись

Код
unit Unit1;
{$R Bitmaps_Png\Images.res}
interface
uses
         Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
         ExtCtrls, StdCtrls, Menus, AppEvnts, TeeProcs, TeEngine, Chart,UN_Type,UN_DrawGrid,IniFiles;

type
         TForm1 = class(TForm)
           Create_Maps_btn: TButton;
           Mini_Map_scrl1: TScrollBox;
           Maps1: TImage;
           MX_lbl: TLabel;
           MY_lbl: TLabel;
           MX1Y1X2Y2_lbl: TLabel;
           Memo1: TMemo;
           PopupMenu1: TPopupMenu;
           N1: TMenuItem;
           PopupMenu2: TPopupMenu;
           N2: TMenuItem;
           N3: TMenuItem;
           Button1: TButton;
           Edit1: TEdit;
           Edit2: TEdit;
           Button2: TButton;
           Memo2: TListBox;
           N4: TMenuItem;
           Panel1: TPanel;
           Image1: TImage;
           Panel2: TPanel;
           Image2: TImage;
           Timer1: TTimer;
           OpenDialog1: TOpenDialog;
           procedure Create_Maps_btnClick(Sender: TObject);
           procedure Maps1MouseMove(Sender: TObject; Shift: TShiftState; X,
             Y: Integer);
           procedure N1Click(Sender: TObject);
           procedure Maps1MouseDown(Sender: TObject; Button: TMouseButton;
             Shift: TShiftState; X, Y: Integer);
           procedure FormCreate(Sender: TObject);
           procedure FormClose(Sender: TObject; var Action: TCloseAction);
           procedure Button2Click(Sender: TObject);
           procedure Image1Click(Sender: TObject);
           procedure Image2Click(Sender: TObject);
           procedure N2Click(Sender: TObject);

         private
           { Private declarations }
           procedure MouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);

// îáðàáîòêà ïðîêðóòêè êîëåñà âíèç
procedure MouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);

// îáðàáîòêà ïðîêðóòêè êîëåñà ââåðõ
procedure MouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
         public
           { Public declarations }
         end;
type TKBoolean = (Create_Map,Delete_Map);
Type TMboolean = (MDOWN,MUP);
type TSetka = (SCreate,SClear);
function FMaps(X:Integer;Y:Integer):Boolean;
var
         Form1: TForm1;
         i,o,p:Integer;//Ïåðåìåííûå äëÿ ðàáîòû ñ ÿ÷åéêàìè(Ñîçäàíèå ôàéëà)
         cs,str1,lki:string;//Äëÿ êîíñîëÿ
         KX,KY,JX,JY:Integer;//Ðàáîòà ñ ÿ÷åéêàìè(Îòðèñîâêà)
         lk:Word;{Ïåðåìåííàÿ êîòîðàÿ áóäåò õðàíèòü êîä êàðòèíêè}
         files,files1:TextFile;//Ïåðåìåííàÿ ôàéëâ äëÿ ñîçäàíèå ôàéëà êàðòû
         krt:Double;{Ïåðåìåííàÿ äëÿ ðàáîòû ñ êîëåñèêîì!
         Òîæå ñàìîå}
         krg:Integer;
         fs:TSearchRec;//Çàãðóçêàê êàðòèíîê ïðè ñîçäàíèè ôîðìû
         list:TStringList;//Äëÿ õðàíåíèÿ èìåí êàðòèíîê
         MBoolean:TMboolean;//Ñîáñòâåííûé òèï Type TMboolean = (MDOWN,MUP); äëÿ îïðåäåëèíÿÿ â êàêîì íàïðàâëåíèè êðóòèòüñÿ êîëåñèêà
         KBoolean:TKBoolean;//Ñîáñòâåííûé òèï type TKBoolean = (Create_Map,Delete_Map); äëÿ îïðåäåëåíèÿ ðèñîâàòü òàéë â îáëîñòè êàðòû èëè óäàëÿòü
         Setka:TSetka;//Ñîáñòâåííûé òèï type TSetka = (SCreate,SClear); â áóäóùåì áóäåò èñïîëüçîâàòüñÿ äëÿ îïðåäåëåíèÿ áóäåò ëè ïîêàçûâàòüñÿ ñåòêà èëè íåò
         i1,i2:Integer;//Ðàáîòà äëÿ ñîçäàíèè îáëàñòè êàðòû
         BIT_White:TBitmap;//Ïåðåìåííàÿ êîòîðàÿ áóäåò õðàíèòü ïåðâîíà÷àëüíóþ êàðòèíêó â îáëîñòè êàðòû
         MK1,MK2,MK3,MK4,MK5,MK6:Integer;//èñïîëüçóåòñÿ äëÿ ñîõðàíåíèÿ êàðòû è çàãðóçêè
         ilkin:Integer;//Èñïîëüçóåòñÿ äëÿ îïðåäåëåíèÿ ñêîëüêî êàðò âñåãî íàõîäèòñÿ â ïàïêå
         Load_Maps:TBITMAP;
         IKLI1,IKLI2:Integer;//Ïåðåìåííàÿ äëÿ îïðåäåëåíèÿ Êîîëè÷åñòâî ÿ÷ååê
         inil: TIniFile;
implementation

{$R *.DFM}
function FMaps(X:Integer;Y:Integer):Boolean;
begin
         KX:= X div 50;
         KY:= Y div 50;
         Form1.MX1Y1X2Y2_lbl.Caption:='X = '+inttostr(KX)+':'+ 'Y = ' + inttostr(KY);
         Maps_Cells[KX,KY].MPath:=list.Strings[Trunc(krt)];
         Maps_Cells[KX,KY].X:=KX;
         Maps_Cells[KX,KY].Y:=KX;
         FMaps:=True;
end;
procedure TForm1.Create_Maps_btnClick(Sender: TObject);
begin
         i := StrToInt(InputBox('Ââåäèòå ÷èñëî ÿ÷ååê','Ââîä ÷èñëà ÿ÷ååê','32'));
         if i >= 10 then begin
           o:=i*50;
           Form1.Maps1.AutoSize:=False;
           Form1.Mini_Map_scrl1.Visible:=True;
           Form1.Maps1.Height:=o;
           Form1.Maps1.Width:=o;
           Form1.Maps1.Canvas.Pen.Color:=clRed;
           Form1.Maps1.Canvas.pen.Width:=0;
           SetLength(Maps_Cells, (Form1.Maps1.Height div 50), (Form1.Maps1.Width div 50));
           for i1:=0 to i do for i2:=0 to i do
           begin
             Form1.Maps1.Canvas.Rectangle(i1*50,i2*50,i1*50+50,i2*50+50);
           end;
         end else begin
           AllocConsole;
           cs:='\\Èçâèíèòå ÷èñëî äîëæíî áûòü áîëüøå 10. Ââåäèòå ÷èñëî ÿ÷ååê';
           CharToOEM (PChar(cs), PChar(cs));
           Writeln(cs);
           readln;
           repeat
             lki:='Èçâèíèòå. Íî äëÿ çàêðûòèÿ êîíñîëüíîãî ïðèëîæåíèÿ íóæíî ââåñòè Close';
             CharToOEM (PChar(lki), PChar(lki));
             Writeln(lki);
             readln(str1);
           until AnsiUpperCase(str1) = 'CLOSE';
             FreeConsole;
           end;
         end;

procedure TForm1.Maps1MouseMove(Sender: TObject; Shift: TShiftState; X,
         Y: Integer);
begin
         Form1.MX_lbl.Caption:=IntToStr(X);
         Form1.MY_lbl.Caption:=IntToStr(Y);
end;

procedure TForm1.N1Click(Sender: TObject);
begin
         Memo1.Lines.SaveToFile(ExtractFilePath(Application.ExeName)+'Èíôîðìàöèÿ.txt');
end;

procedure TForm1.Maps1MouseDown(Sender: TObject; Button: TMouseButton;
         Shift: TShiftState; X, Y: Integer);
begin
         If Button = mbleft then begin
           If KBoolean = Create_Map then begin
             If FMaps(X,Y) = True then begin
               Maps1.Canvas.Draw(KX*50,KY*50,Image1.Picture.Bitmap);
               Memo2.Items.Add('Êàðòèíêà ñ ÿ÷åéêàìè X = '+INTTOSTR(KX)+' , Y = '+INTTOSTR(KY)+' , Çàïèñàëàñü óñïåøíî. Èìÿ êàðòèíêè = '+list.strings[Trunc(krt)]);
             end;
           end;
           If KBoolean = Delete_Map then begin
             If FMaps(X,Y) = True then begin
               Maps1.Canvas.Draw(KX*50,KY*50,BIT_White);
               Memo2.Items.Add('Êàðòèíêà ñ ÿ÷åéêàìè X = '+INTTOSTR(KX)+' , Y = '+INTTOSTR(KY)+' , Çàïèñàëàñü óñïåøíî. Èìÿ êàðòèíêè = '+list.strings[Trunc(krt)]);
             end;
           end;
         end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
         list:=TStringList.Create;
         if FindFirst(ExtractFilePath(Application.ExeName)+'Bitmaps_Png\'+'*.bmp',faAnyFile-faDirectory-faVolumeID, fs)=0 then begin
           repeat
             inc(krg);
             list.Add(fs.Name);
           until FindNext(fs)<>0;
           findclose(fs);
         end;
         if FindFirst(ExtractFilePath(Application.ExeName)+'Maps\'+'*.binMap',faAnyFile-faDirectory-faVolumeID, fs)=0 then begin
           repeat
             inc(ilkin);
           until FindNext(fs)<>0;
           findclose(fs);
           Button1.Enabled:=True;
         end;
         Form1.OnMouseWheel:=MouseWheel;
         Form1.OnMouseWheelDown:=MouseWheelDown;
         Form1.OnMouseWheelUp:=MouseWheelUp;
         Form1.AutoSize:=True;
         krt:=0;
         Edit1.text:='Ñòîèò';
         Form1.Edit2.Text:=list.Strings[Trunc(krt)]+' : '+inttostr(Trunc(krt));
         BIT_White:=TBitmap.Create;
end;

procedure TForm1.MouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
         if KBoolean = Create_Map then begin
           If MBoolean = MDOWN then begin
             If krt > 0 then begin
               krt := krt - 0.5;
             end;
             Form1.Edit1.Text:='Êðóòèòñÿ Ââíèç';
           end;
           If MBoolean = MUP then begin
             if krt < krg -1 then begin
               krt := krt + 0.5;
             end;
             Form1.Edit1.Text:='Êðóòèòñÿ Ââåðõ';
           end;
             Form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Bitmaps_Png\'+list.Strings[Trunc(krt)]);
             Form1.Edit2.Text:=list.Strings[Trunc(krt)]+' : '+inttostr(Trunc(krt));
           end;
         end;
procedure TForm1.MouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
         if KBoolean = Create_Map then begin
           MBoolean:=MDOWN;
         end;
end;

procedure TForm1.MouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
         if KBoolean = Create_Map then begin
           MBoolean:=MUP;
         end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
         Form1.OnMouseWheel:=nil;
         Form1.OnMouseWheelDown:=nil;
         Form1.OnMouseWheelUp:=nil;
         Application.Terminate;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
         Form1.OnMouseWheel:=nil;
         Form1.OnMouseWheelDown:=nil;
         Form1.OnMouseWheelUp:=nil;
         BIT_White.free;
         inil.Free;
         Application.Terminate;
end;

procedure TForm1.Image1Click(Sender: TObject);
begin
         Panel1.BorderStyle:=bsSingle;
         Panel2.BorderStyle:=bsNone;
         KBoolean:=Create_Map;
end;

procedure TForm1.Image2Click(Sender: TObject);
begin
         Panel2.BorderStyle:=bsSingle;
         Panel1.BorderStyle:=bsNone;
         KBoolean:=Delete_Map;
end;

procedure TForm1.N2Click(Sender: TObject);
var strini:string;
begin
         ilkin:=ilkin+1;
         strini:=InputBox('Ââîä èìåíè êàðòû.','Ââåäèòå èìÿ êàðòû','Drionko');
         AssignFile(files,ExtractFilePath(Application.ExeName)+'Maps\'+inttostr(ilkin)+strini+'.binMap');
         rewrite(files);
         Append(files);
         for MK1 := 0 to (Maps1.Height div 50 - 1) do
         for MK2 := 0 to (Maps1.Width div 50 - 1) do begin
           Writeln(files,Maps_Cells[MK1,MK2].MPath);
           Writeln(files,Maps_Cells[MK1,MK2].X);
           Writeln(files,Maps_Cells[MK1,MK2].Y);
         end;
         IKLI1:=MK1;
         IKLI2:=MK2;
         inil:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Maps\'+inttostr(ilkin)+'Maps.ini');
         inil.WriteInteger('Ïåðåìåííàÿ Ìàêñ ÿ÷ååê','1',IKLI1);
         inil.WriteInteger('Ïåðåìåííàÿ Ìàêñ ÿ÷ååê','2',IKLI2);
         Memo2.Items.Add('Ìàêñèìàëüíîå ÷èñëî ÿ÷ååê X = '+inttostr(IKLI1)+' , Y = '+inttostr(IKLI2));
         closefile(files);
end;

end.


Нужно сделать загрузку по томуже типу как сделана запись только

загрузку нужно делать используя OpenDialog1

в Ini файлах будет храниться максимальное число ячеек начиная с 1 но в загрузки будет начинаться с 0 так что нужно будет отнимать 1

можете ответить мне на этих 2 вопроса

Добавлено (20.03.2013, 13:17)
---------------------------------------------
Ктонибудь скажите где находятся функции VarArrayGet и VarArrayPut

при установки паскаль скриптна Delphi 5 вот тут ошибки

function _VarArrayGet(var S : Variant; I : Integer) : Variant;
begin
result := VarArrayGet(S, [I]);
end;

procedure _VarArraySet(const c : Variant; I : Integer; var s : Variant);
begin
VarArrayPut(s, c, [i]);
end;

Вот ошибки

[Error] uPSRuntime.pas(9251): Undeclared identifier: 'VarArrayGet'
[Error] uPSRuntime.pas(9256): Undeclared identifier: 'VarArrayPut'
[Fatal Error] uPSComponent.pas(6): Could not compile used unit 'uPSRuntime.pas'

Помогите пожалуйста

Добавлено (28.03.2013, 10:14)
---------------------------------------------
Прошу вас помогите мне разобраться что должно быть в файле персонажа кроме жизней патронов оружия имя картинки имя персонажа

Добавлено (08.04.2013, 14:29)
---------------------------------------------
Раскажите мне про Длл и можно ли там хранить рекорды с переменнами а также может ли длл содержать форму. Также скажите можно ли поменять расширение у Dll

Добавлено (08.04.2013, 16:06)
---------------------------------------------
XE3(VCLDelphi)
Код

library Project2;

{ Important note about DLL memory management: ShareMem must be the
first unit in your library's USES clause AND your project's (select
Project-View Source) USES clause if your DLL exports any procedures or
functions that pass strings as parameters or function results. This
applies to all strings passed to and from your DLL--even those that
are nested in records and classes. ShareMem is the interface unit to
the BORLNDMM.DLL shared memory manager, which must be deployed along
with your DLL. To avoid using BORLNDMM.DLL, pass string information
using PChar or ShortString parameters. }

uses
System.SysUtils,
System.Classes;
{$R *.res}
Type TPurpose1 = (CAS, NTM, CASNTM);
type
TDataPingPongGames=record
LefelsGamesPingPong:Integer;
NamePlayer,NameEnemy:String[20];
Purpose1:TPurpose1;
WBOACDAB:Boolean;
WBOACDABInt:Integer;
TextLefelsColor:String[15];
XCircle,YCircle:integer;
End;

Function CreateLefels(AddNamePlayer:String;AddNameEnemy:String;AddPurpose:TPurpose1;
AddLefelsGamesPingPong:Integer;Path:String;AddWBOACDAB:Boolean;AddWBOACDABInt:Integer;
AddTextLefelsColor:String):Boolean;
var DataPingPongGames:TDataPingPongGames;
FileDataPingPongGames:File of TDataPingPongGames;
begin
DataPingPongGames.NamePlayer:=AddNamePlayer;
DataPingPongGames.NameEnemy:=AddNameEnemy;
DataPingPongGames.LefelsGamesPingPong:=AddLefelsGamesPingPong;
DataPingPongGames.Purpose1:=AddPurpose;
DataPingPongGames.WBOACDAB:=AddWBOACDAB;
DataPingPongGames.WBOACDABInt:=AddWBOACDABInt;
DataPingPongGames.TextLefelsColor:=AddTextLefelsColor;
assignfile(FileDataPingPongGames,Path);
rewrite(FileDataPingPongGames);
write(FileDataPingPongGames,DataPingPongGames);
closefile(FileDataPingPongGames);
end;

Function LoadLefels(Path:String):Boolean;
var DataPingPongGames:TDataPingPongGames;
FileDataPingPongGames:File of TDataPingPongGames;
begin
assignfile(FileDataPingPongGames,Path);
{$i-} reset(FileDataPingPongGames); {$i+}
read(FileDataPingPongGames,DataPingPongGames);
closefile(FileDataPingPongGames);
end;

Function SaveLefels(Path:String;SaveXCircle:Integer;SaveYCircle:Integer):Boolean;
var DataPingPongGames:TDataPingPongGames;
FileDataPingPongGames:File of TDataPingPongGames;
begin
DataPingPongGames.XCircle:=SaveXCircle;
DataPingPongGames.YCircle:=SaveYCircle;
assignfile(FileDataPingPongGames,Path);
rewrite(FileDataPingPongGames);
write(FileDataPingPongGames,DataPingPongGames);
closefile(FileDataPingPongGames);
end;
var DataPingPongGamesDll:TDataPingPongGames;
exports CreateLefels,SaveLefels,LoadLefels,DataPingPongGamesDll;
begin
end.



Правильно ли я сделал длл с рекордом


Сообщение отредактировал Александр5 - Понедельник, 08 Апреля 2013, 16:15
Александр5Дата: Воскресенье, 10 Марта 2013, 17:58 | Сообщение # 5 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр
частый гость
Сейчас нет на сайте
Ну у меня да а у других компьютерах не только для себя пишу редактор карт к игре

Добавлено (08.03.2013, 21:08)
---------------------------------------------
должен быть другой способ вот весь код.

Код


unit Unit1;

interface
uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   ExtCtrls, StdCtrls, Menus, AppEvnts, TeeProcs, TeEngine, Chart,UN_Type,UN_DrawGrid;

type
   TForm1 = class(TForm)
     Create_Maps_btn: TButton;
     Mini_Map_scrl1: TScrollBox;
     Maps1: TImage;
     MX_lbl: TLabel;
     MY_lbl: TLabel;
     MX1Y1X2Y2_lbl: TLabel;
     Memo1: TMemo;
     PopupMenu1: TPopupMenu;
     N1: TMenuItem;
     PopupMenu2: TPopupMenu;
     N2: TMenuItem;
     N3: TMenuItem;
     Button1: TButton;
     Image1: TImage;
     Edit1: TEdit;
     Edit2: TEdit;
     Button2: TButton;
     procedure Create_Maps_btnClick(Sender: TObject);
     procedure Maps1MouseMove(Sender: TObject; Shift: TShiftState; X,
       Y: Integer);
     procedure N1Click(Sender: TObject);
     procedure Maps1MouseDown(Sender: TObject; Button: TMouseButton;
       Shift: TShiftState; X, Y: Integer);
     procedure FormCreate(Sender: TObject);
     procedure FormClose(Sender: TObject; var Action: TCloseAction);
     procedure Button2Click(Sender: TObject);
     procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
       Shift: TShiftState; X, Y: Integer);

   private
     { Private declarations }
     procedure MouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);

// обработка прокрутки колеса вниз
procedure MouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);

// обработка прокрутки колеса вверх
procedure MouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
   public
     { Public declarations }
   end;
Type TMboolean = (MDOWN,MUP);
var
   Form1: TForm1;
   DStream:TDStream;
   i,o,p:Integer;
   IM1:Integer;
   IM2:Integer;
   cs,str1,lki:string;
   KX,KY,JX,JY:Integer;
   lk:Word;{Переменная которая будет хранить код картинки}
   files:TextFile;
   krt,krg:integer;
   Bmp_Image:array of string;
   fs:TSearchRec;
   list:TStringList;
   MBoolean:TMboolean;
implementation

{$R *.DFM}
procedure TForm1.Create_Maps_btnClick(Sender: TObject);
begin
   i := StrToInt(InputBox('Введите число ячеек','Ввод числа ячеек','32'));
   if i >= 20 then begin
     DStream.InputStream:=TMemoryStream.Create;
     AssignFile(files,ExtractFilePath(Application.ExeName)+'Maps_Bin.bin');
     ReWrite(files);
     CloseFile(files);
     o:=i*50;
     Form1.Maps1.Height:=o;
     Form1.Maps1.Width:=o;
     Form1.Mini_Map_scrl1.Visible:=True;
     SetLength(DStream.Maps_Cells,i,i);
     DStream.InputStream.Free;
   end else begin
     AllocConsole;
     cs:='\\Извините число должно быть больше 20. Введите число ячеек';
     CharToOEM (PChar(cs), PChar(cs));
     Writeln(cs);
     readln;
     repeat
       lki:='Извините. Но для закрытия консольного приложения нужно ввести Close';
       CharToOEM (PChar(lki), PChar(lki));
       Writeln(lki);
       readln(str1);
     until AnsiUpperCase(str1) = 'CLOSE';
       FreeConsole;
     end;
   end;

procedure TForm1.Maps1MouseMove(Sender: TObject; Shift: TShiftState; X,
   Y: Integer);
begin
   Form1.MX_lbl.Caption:=IntToStr(X);
   Form1.MY_lbl.Caption:=IntToStr(Y);
end;

procedure TForm1.N1Click(Sender: TObject);
begin
   Memo1.Lines.SaveToFile(ExtractFilePath(Application.ExeName)+'Информация.txt');
end;

procedure TForm1.Maps1MouseDown(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: Integer);
begin
   KX:= X div 50;
   KY:= Y div 50;
   Form1.MX1Y1X2Y2_lbl.Caption:='X = '+inttostr(KX)+':'+ 'Y = ' + inttostr(KY);
   DStream.Maps_Cells[KX,KY]:=krt;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   list:=TStringList.Create;
   if FindFirst(ExtractFilePath(Application.ExeName)+'Bitmaps_Png\'+'*.bmp',faAnyFile-faDirectory-faVolumeID, fs)=0 then begin
     repeat
       inc(krg);
       list.Add(fs.Name);
     until FindNext(fs)<>0;
     findclose(fs);
   end;
   Form1.OnMouseWheel:=MouseWheel;
   Form1.OnMouseWheelDown:=MouseWheelDown;
   Form1.OnMouseWheelUp:=MouseWheelUp;
   Form1.AutoSize:=True;
end;

procedure TForm1.MouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
   If MBoolean = MDOWN then begin
     If krt > 0 then begin
     krt := krt - 1;
     end;
     Form1.Edit1.Text:='Ввниз';
   end;
   If MBoolean = MUP then begin
     if krt < krg -1 then begin
     krt := krt + 1;
     end;
     Form1.Edit1.Text:='Вверх';
   end;
   Form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Bitmaps_Png\'+list.Strings[krt]);
   Form1.Edit2.Text:=list.Strings[krt]+' : '+inttostr(krt);
end;

procedure TForm1.MouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
   MBoolean:=MDOWN;
end;

procedure TForm1.MouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
   MBoolean:=MUP;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   Form1.OnMouseWheel:=nil;
   Form1.OnMouseWheelDown:=nil;
   Form1.OnMouseWheelUp:=nil;
   Application.Terminate;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   Form1.OnMouseWheel:=nil;
   Form1.OnMouseWheelDown:=nil;
   Form1.OnMouseWheelUp:=nil;
   Application.Terminate;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: Integer);
begin
    Create_Draw_Grid_Modal('Выберите картинку');
end;

end.

Добавлено (10.03.2013, 17:58)
---------------------------------------------
Как можно на имадже отрисовать картинку в орпеределенных координатах и стереть ее

Александр5Дата: Пятница, 08 Марта 2013, 19:42 | Сообщение # 6 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр
частый гость
Сейчас нет на сайте
А разве не WheelDelta не будет содержать число прокруток

Добавлено (07.03.2013, 00:18)
---------------------------------------------
Скиньте мне паскаль скрипт на Delphi 5 и 7
Как установить Паскаль скрипт на Delphi 5 и 7

Добавлено (08.03.2013, 19:42)
---------------------------------------------
Скажите какую формулу мне использовать для прокрутки картинок.

Эта не подходит.

Код

procedure TForm1.MouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
   If MBoolean = MDOWN then begin
     If krt > 0 then begin
     krt := krt - 1;
     end;
     Form1.Edit1.Text:='Вверх';
   end;
   If MBoolean = MUP then begin
     if krt < krg -1 then begin
     krt := krt + 1;
     end;
     Form1.Edit1.Text:='Ввниз';
   end;
   Form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Bitmaps_Png\'+list.Strings[krt]);
   Form1.Edit2.Text:=list.Strings[krt]+' : '+inttostr(krt);
end;

procedure TForm1.MouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
   MBoolean:=MDOWN;
end;

procedure TForm1.MouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
   MBoolean:=MUP;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   Form1.OnMouseWheel:=nil;
   Form1.OnMouseWheelDown:=nil;
   Form1.OnMouseWheelUp:=nil;
   Application.Terminate;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   Form1.OnMouseWheel:=nil;
   Form1.OnMouseWheelDown:=nil;
   Form1.OnMouseWheelUp:=nil;
   Application.Terminate;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: Integer);
begin
    Create_Draw_Grid_Modal('Выберите картинку');
end;

end.


Скажите пожалуйста


Сообщение отредактировал Александр5 - Четверг, 07 Марта 2013, 00:23
Александр5Дата: Среда, 06 Марта 2013, 22:13 | Сообщение # 7 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр
частый гость
Сейчас нет на сайте
Не уверен, но, скорей всего, проблема в колёсике мыши. У всех мышей разные колёсики, плюс разные настройки в системе, так что реальный щелчок колёсика при его вращении может вызывать сразу несколько событий MouseWheelUp/MouseWheelDown подряд.

И как это можно исправить

Смотря какие картинки ты загружаешь. Предположим, ты хочешь загрузить все картинки с расширением *.bmp в папке images. Тогда тебе нужно задать строку '*.bmp' фильтром поиска и путь к папке 'images', а затем вызывать FindFirst, загрузить картинку, вызывать FindNext и загружать картинку, пока картинки не кончатся.

но как сделать как загрузить в драв грид

Добавлено (06.03.2013, 22:13)
---------------------------------------------
Слушайте как можно в процедуре

procedure TForm1.MouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
Form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Bitmaps_Png\'+list.Strings[krt]);
Form1.Edit2.Text:=list.Strings[krt]+' : '+inttostr(krt);
end;

в какую сторону крутиться колесика

Александр5Дата: Среда, 06 Марта 2013, 19:23 | Сообщение # 8 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр
частый гость
Сейчас нет на сайте
Ответ те на это пожалуйста

1)

Код

unit Unit1;

interface
uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    ExtCtrls, StdCtrls, Menus, AppEvnts, TeeProcs, TeEngine, Chart,UN_Type,UN_DrawGrid;

type
    TForm1 = class(TForm)
      Create_Maps_btn: TButton;
      Mini_Map_scrl1: TScrollBox;
      Maps1: TImage;
      MX_lbl: TLabel;
      MY_lbl: TLabel;
      MX1Y1X2Y2_lbl: TLabel;
      Memo1: TMemo;
      PopupMenu1: TPopupMenu;
      N1: TMenuItem;
      PopupMenu2: TPopupMenu;
      N2: TMenuItem;
      N3: TMenuItem;
      Button1: TButton;
      Image1: TImage;
      Edit1: TEdit;
      Edit2: TEdit;
      Button2: TButton;
      procedure Create_Maps_btnClick(Sender: TObject);
      procedure Maps1MouseMove(Sender: TObject; Shift: TShiftState; X,
        Y: Integer);
      procedure N1Click(Sender: TObject);
      procedure Maps1MouseDown(Sender: TObject; Button: TMouseButton;
        Shift: TShiftState; X, Y: Integer);
      procedure FormCreate(Sender: TObject);
      procedure FormClose(Sender: TObject; var Action: TCloseAction);
      procedure Button2Click(Sender: TObject);
      procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
        Shift: TShiftState; X, Y: Integer);

    private
      { Private declarations }
      procedure MouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);

// îáðàáîòêà ïðîêðóòêè êîëåñà âíèç
procedure MouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);

// îáðàáîòêà ïðîêðóòêè êîëåñà ââåðõ
procedure MouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
    public
      { Public declarations }
    end;
var
    Form1: TForm1;
    DStream:TDStream;
    i,o,p:Integer;
    IM1:Integer;
    IM2:Integer;
    cs,str1,lki:string;
    KX,KY,JX,JY:Integer;
    lk:Word;{Ïåðåìåííàÿ êîòîðàÿ áóäåò õðàíèòü êîä êàðòèíêè}
    files:TextFile;
    krt,krg:integer;
    Bmp_Image:array of string;
    fs:TSearchRec;
    list:TStringList;
implementation

{$R *.DFM}
procedure TForm1.Create_Maps_btnClick(Sender: TObject);
begin
    i := StrToInt(InputBox('Ââåäèòå ÷èñëî ÿ÷ååê','Ââîä ÷èñëà ÿ÷ååê','32'));
    if i >= 20 then begin
      DStream.InputStream:=TMemoryStream.Create;
      AssignFile(files,ExtractFilePath(Application.ExeName)+'Maps_Bin.bin');
      ReWrite(files);
      CloseFile(files);
      o:=i*50;
      Form1.Maps1.Height:=o;
      Form1.Maps1.Width:=o;
      Form1.Mini_Map_scrl1.Visible:=True;
      SetLength(DStream.Maps_Cells,i,i);
      DStream.InputStream.Free;
    end else begin
      AllocConsole;
      cs:='\\Èçâèíèòå ÷èñëî äîëæíî áûòü áîëüøå 20. Ââåäèòå ÷èñëî ÿ÷ååê';
      CharToOEM (PChar(cs), PChar(cs));
      Writeln(cs);
      readln;
      repeat
        lki:='Èçâèíèòå. Íî äëÿ çàêðûòèÿ êîíñîëüíîãî ïðèëîæåíèÿ íóæíî ââåñòè Close';
        CharToOEM (PChar(lki), PChar(lki));
        Writeln(lki);
        readln(str1);
      until AnsiUpperCase(str1) = 'CLOSE';
        FreeConsole;
      end;
    end;

procedure TForm1.Maps1MouseMove(Sender: TObject; Shift: TShiftState; X,
    Y: Integer);
begin
    Form1.MX_lbl.Caption:=IntToStr(X);
    Form1.MY_lbl.Caption:=IntToStr(Y);
end;

procedure TForm1.N1Click(Sender: TObject);
begin
    Memo1.Lines.SaveToFile(ExtractFilePath(Application.ExeName)+'Èíôîðìàöèÿ.txt');
end;

procedure TForm1.Maps1MouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
begin
    KX:= X div 50;
    KY:= Y div 50;
    Form1.MX1Y1X2Y2_lbl.Caption:='X = '+inttostr(KX)+':'+ 'Y = ' + inttostr(KY);
      
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    list:=TStringList.Create;
    if FindFirst(ExtractFilePath(Application.ExeName)+'Bitmaps_Png\'+'*.bmp',faAnyFile-faDirectory-faVolumeID, fs)=0 then begin
      repeat
        inc(krg);
        list.Add(fs.Name);
      until FindNext(fs)<>0;
      findclose(fs);
    end;
    Form1.OnMouseWheel:=MouseWheel;
    Form1.OnMouseWheelDown:=MouseWheelDown;
    Form1.OnMouseWheelUp:=MouseWheelUp;
    Form1.AutoSize:=True;
end;

procedure TForm1.MouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
    Form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Bitmaps_Png\'+list.Strings[krt]);
    Form1.Edit2.Text:=list.Strings[krt]+' : '+inttostr(krt);
end;

procedure TForm1.MouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
    If krt > 0 then begin
      krt := krt - 1;
    end;
    Form1.Edit1.Text:='Ââíèç';
end;

procedure TForm1.MouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
    if krt < krg -1 then begin
      krt := krt + 1;
    end;
    Form1.Edit1.Text:='Ââåðõ';
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    Form1.OnMouseWheel:=nil;
    Form1.OnMouseWheelDown:=nil;
    Form1.OnMouseWheelUp:=nil;
    Application.Terminate;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
    Form1.OnMouseWheel:=nil;
    Form1.OnMouseWheelDown:=nil;
    Form1.OnMouseWheelUp:=nil;
    Application.Terminate;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
begin
     Create_Draw_Grid_Modal('Âûáåðèòå êàðòèíêó');
end;

end.


procedure TForm1.MouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
if krt < krg -1 then begin
krt := krt + 1;
end;
Form1.Edit1.Text:='Ââåðõ';
end;

procedure TForm1.MouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
If krt > 0 then begin
krt := krt - 1;
end;
Form1.Edit1.Text:='Ââíèç';
end;

Он почемута прибавляет 2 а не 1

2)

Как можно сделаить загрузку всех картинок в Draw grid используя Find first

функции FindFirst,FindNext,FindClose я знаю но незнаю как организовать загрузку картинок в DrawGrid


Сообщение отредактировал Александр5 - Среда, 06 Марта 2013, 19:24
Александр5Дата: Суббота, 02 Марта 2013, 15:17 | Сообщение # 9 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр
частый гость
Сейчас нет на сайте
TimKruz, Спасибо но Word не хранит картинок или ты предлагаешь чтобы ворд хранил код картинки например трава или еще что либо а Image:array of TBitmap хранил картики 1 тип = 1 картинка

правдо эфективно но тут вопрос зайдет о количестве картинок

map:array of array of word это массив который будет хранить тип картинки с заданными координатами

Image:array of TBitmap это сами картинки

Вопрос пойдет о том как на имадже показывать эти картики если учесть что не будет известно в каких координатах какая картинка

это прийдется делать определенный информационный масив и его запись для этого

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

Как ты себе это представляешь?

Ну сделать редктор текст едит он будетпризводить загрузку и сохранения рекорда. В рекорде будут несколько 10 масивов string для текста.

несколько 10 потомучто хочу чтобы все по полочкам лежало
Александр5Дата: Пятница, 01 Марта 2013, 23:37 | Сообщение # 10 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр
частый гость
Сейчас нет на сайте
Нет я в текстовике это значит в текстовом файле но я тут подумал что лучше сделать рекордом рекорд будет содержать весь текст игры но сейчас занят редактором карт и никак не могу найти формулу для того чтобы узнать в какую ячейку засовывать картинку

Масив ячеек будет выглядить так

Maps_Games : array of Bitmap;

Или может предложете как лучше сделать массив карты с ячейками

1 файл = 1 карта

И еще мне нужно узнать что использовать для записи картинок

решил для записи переменных Integer, boolean, string, byte использовать рекорд но для картинок не подойдет нужен спицальная запись с памятью например TMemoryStream
Александр5Дата: Пятница, 01 Марта 2013, 15:26 | Сообщение # 11 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр
частый гость
Сейчас нет на сайте
Цитата (TimKruz )
Диск ты зря покупал, уж лучше оригинальный образ скачать


Почему зря вобщета я за него 300 рублей платил и там за исключением этого 10 языков я его из за бейсика брал както интерисовался но это интерприатор и игру нормальную там не написать

Цитата (TimKruz )
Данные у тебя килобайт весят, потому что ты используешь tbitmap, а там много информации хранится, да и сами битмапы много места занимают. Вообще, я уже говорил, что стандартными средствами не всегда удобно в файл писать, т.к., например, пустые строки и массивы будут забивать пространство в файле нулями.


А как делать но игру я даже незнаю пока я решил сделать объекты для редактора карт редактор объектов но как сделать запись чтобы был бинарный файл мне честно говоря хочется поскорее закончить с редактором объектов и перейти редактору карт а ушь потом начать писать игровой движок 1 версия расчитываю сделать простую без стилей только компоненты и код.

Цитата (TimKruz )
Делфи 7 полностью совместима с семёркой, виндоус предупреждение первый раз выводит, но Делфи работает отлично. Правда, ей нужны права администратора для работы с файлами в её папке.


А есть маленький образ и без вирусов ну скажем весом 100 мб но не достигающие 200 вобще 5 весит 64 мб образ диска

Добавлено (22.02.2013, 08:57)
---------------------------------------------


Добавлено (22.02.2013, 16:55)
---------------------------------------------
Короче исправил код но даже рекорд по человечески не может записываться что еще можно использовать для бинарного файла чтобы сделать объекты для карты
Код

unit UN_OBject;

interface

uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    ExtCtrls, StdCtrls, Buttons, ComCtrls, ExtDlgs,UN2_Object,FileCtrl;

type
    TForm1 = class(TForm)
      BitBtn1: TBitBtn;
      Panel1: TPanel;
      Image1: TImage;
      Panel2: TPanel;
      RadioGroup2: TRadioGroup;
      RadioGroup1: TRadioGroup;
      Timer1: TTimer;
      CheckBox1: TCheckBox;
      Label1: TLabel;
      TrackBar1: TTrackBar;
      Label2: TLabel;
      OBR: TEdit;
      Label3: TLabel;
      Label4: TLabel;
      OpenPictureDialog1: TOpenPictureDialog;
      Button1: TButton;
      CheckBox2: TCheckBox;
      Label5: TLabel;
      procedure TrackBar1Change(Sender: TObject);
      procedure Timer1Timer(Sender: TObject);
      procedure BitBtn1Click(Sender: TObject);
      procedure Button1Click(Sender: TObject);
      procedure FormCreate(Sender: TObject);
    private
      { Private declarations }
    public
      { Public declarations }
end;
const OBR_YES:STRING='(Да)';
OBR_NO:STRING='(Нет)';
var
    Form1: TForm1;
    Object1:TObject_obj;
    FILE_Object:file of TObject_obj;
    il:integer;
    fs: TSearchRec;
implementation

{$R *.DFM}

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
    Label1.Caption:=inttostr(TrackBar1.Position)+' %';
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
    If RadioGroup1.ItemIndex=0then begin panel2.Enabled:=false; end;
    If RadioGroup1.ItemIndex=1then begin Panel2.Enabled:=true; end;
    If CheckBox1.Checked=true then begin Label2.Caption:=OBR_YES;end else begin Label2.Caption:=OBR_NO;end;
    If CheckBox2.Checked=true then begin Label5.Caption:=OBR_YES;end else begin Label5.Caption:=OBR_NO;end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
    If openpicturedialog1.Execute then begin
      image1.Picture.LoadFromFile(openpicturedialog1.FileName);
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var r:word;
begin
    Object1.Kartinka:=tbitmap.Create;
    Object1.Kartinka:=image1.Picture.Bitmap;
    Object1.Names:=OBR.Text;
    case Radiogroup1.ItemIndex of
    0:begin
    Object1.typesPO:=false;
    end;
    1:begin
    Object1.typesPO:=true;
    end;
    end;
    if Object1.typesPO=true then begin
    object1.tormoz_procent:=0;
    object1.BOOLEAN_OBJECT:=false;
    object1.TYPE_OBJECT:=0;
    object1.STOP_PERSONAZ:=false;
    end else begin
      object1.tormoz_procent:=trackbar1.Position;
      object1.BOOLEAN_OBJECT:=checkbox1.Checked;
      Object1.TYPE_OBJECT:=Radiogroup2.ItemIndex+1;
      object1.STOP_PERSONAZ:=checkbox2.Checked;
    end;
     assignfile(FILE_Object,extractfilepath(application.ExeName)+'TObject_A\TObject_'+OBR.Text+'_'+inttostr(il)+'.TOBJ');
     rewrite(FILE_Object);
     write(FILE_Object,Object1);
     closefile(FILE_Object);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    if FindFirst(extractfilepath(application.ExeName)+'\TObject_A\'+'*.TOBJ',faAnyFile - faDirectory - faVolumeID, fs) = 0 then begin
      repeat
      inc(il);
      until FindNext(fs) <> 0;
      findclose(fs);
    end;
end;

end.

unit UN2_Object;

interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    ExtCtrls, StdCtrls, Buttons, ComCtrls, ExtDlgs;
Type
TObject_obj=record
    Kartinka:tbitmap;
    Names:string[20];
    typesPO:BOOLEAN;
    tormoz_procent:integer;
    BOOLEAN_OBJECT:boolean;
    TYPE_OBJECT:BYTE;
    STOP_PERSONAZ:BOOLEAN;
end;
implementation

end.


Добавлено (22.02.2013, 17:30)
---------------------------------------------
Я нашел как решиить проблему нашел пример и теперь я буду записывать класс

Добавлено (22.02.2013, 18:03)
---------------------------------------------
Слушайти тут проблемка вот код записи строки мне нужно сделать запись не только строки
Код

procedure TMaterials.WriteString(Stream: TStream; Str: string);
var I : Integer;
begin
    I := Length(Str);
    Stream.Write(I, SizeOf(I));
    Stream.Write(Str[1], I);
end;


Как можно сделать еще на такие данные Integer,Byte,boolean,Word и т.п поможете

тоже самое и для чтения надо вот код чтения строки
Код

function TMaterials.ReadString(Stream: TStream): string;
var I : Integer;
begin
   Stream.Read(I, SizeOf(I));
   SetLength(Result, I);
   Stream.Read(Result[1], I);
end;

Добавлено (25.02.2013, 10:59)
---------------------------------------------
Как можно сделать мигание Модальной формы при попытки перейти на другие формы когда открыта модальная форма
То есть как можно отловить это а с миганием формя я сам разберусь а вот как отловить переход на другие формы в модальной форме с помощью таймера

Добавлено (01.03.2013, 15:26)
---------------------------------------------
Скажите мне как можно в текстовике сделать поиск слова и как определить на какой строке это слово находится.

И еще как считывать определенную строчку а не подряд

Сообщение отредактировал Александр5 - Пятница, 22 Февраля 2013, 18:07
Александр5Дата: Воскресенье, 24 Февраля 2013, 11:46 | Сообщение # 12 | Тема: Мои идеи для создание компьютерной игры Ancient Empires
частый гость
Сейчас нет на сайте
Глюк, Тут написано если Gml = C++ тогда i = lol очередная логическая задача но не могу перевести GML И LOL ХОТЯ НАЙДУ В ГУГЛЕ И ПОЙМУ ЗАДАЧУ
Amri, Спасибо я займусь изучением теперь редко когда буду просить помощи так ак я понял чтопомощи не дождесся

Только просьба когда закончу разроботку игрового движка вы сделайти графику обновления модификации. И подправти мои идеи если они неправильные раскожите как сделать лучше
Александр5Дата: Воскресенье, 24 Февраля 2013, 09:23 | Сообщение # 13 | Тема: Мои идеи для создание компьютерной игры Ancient Empires
частый гость
Сейчас нет на сайте
Я хочу сначала изучить Delphi хорошо потом перейти к C++
Для меня C++ без Delphi сложный язык
Александр5Дата: Воскресенье, 24 Февраля 2013, 09:17 | Сообщение # 14 | Тема: Мои идеи для создание компьютерной игры Ancient Empires
частый гость
Сейчас нет на сайте
Глюк, Я работаю на delphi а не на C++ извини
Александр5Дата: Воскресенье, 24 Февраля 2013, 09:09 | Сообщение # 15 | Тема: Мои идеи для создание компьютерной игры Ancient Empires
частый гость
Сейчас нет на сайте
Цитата (imperator12 )
Я уже не говорю о поддержки скриптов, знаний АПИ, 3Д математики и многое другое.

Выучу найду но скрипты в моей игре не нужны а вообще у меня просьба может кто из вас знает где скачать апи для делфи книгу

Добавлено (24.02.2013, 09:09)
---------------------------------------------
Вот что я уже знаю

Функции
Процедуры
Типы
Рекорды
Длл но только как там писать функции процедуры и их регистрацию а также конечно подключения к проекту

Функция Финдфирст финднекст и финдклосе
Функции работы с деректориями
Диалоговые сообщения кстати сейчас создаю одно
Ну и еще мелочи которые надо только посмотреть и с 1 взгляду пойму
Классы я только начел работать так что буду разбираться с записью переменных которые находиться в классе отдельно
3Д не смогу изучить да и не собирался 3Д игры делать вообще только 2Д
Что касается графики тонарисовать кое как на пэйнте смогу впрочем какая разница там картинки можно будет менять и переделывать они загружаться будут програмно и всеже ответте на идею как лучше загружать картинки все в переменную при загрузки игры или делать редакторы для их извлечения из файла

Александр5Дата: Суббота, 23 Февраля 2013, 21:40 | Сообщение # 16 | Тема: Мои идеи для создание компьютерной игры Ancient Empires
частый гость
Сейчас нет на сайте
То есть ты даже не знаешь как написать конструктор-деструктор, и планируешь написать что то типа двига( Точнее что Это непонятно что напишут за тебя)? Иди учи уроки, а твои идеи никому не нужны и никто не будет писать тебе код за тебя. Ведь непонятно этот проЭкт игра, движок, мод или конструктор?

Знаю теперь.

В конструкторе пишется начальные значения,запуск процедур которые должны происходить при создании класса и т.п.
В деструкторе уничтожение в основном или то что должно происходить при уничтожение класса
Александр5Дата: Суббота, 23 Февраля 2013, 20:37 | Сообщение # 17 | Тема: Мои идеи для создание компьютерной игры Ancient Empires
частый гость
Сейчас нет на сайте
Хочу поделиться идеями по своей разработки игрового движка Ancient Empires по мотивам мобильной игры Ancient Empires 2

Мне надоело, что Мобильную игру Ancient Empires 2 Революция не дорабатывают.
Мне хочется, чтобы она была, как игровой движок, где должна быть возможность добавлять свои кампании и миссии.
Менять структуру персонажей.
Менять текст всей игры, в том числе миссий, персонажей.
А вот 1 идеи, которые я изменял и написал последние идеи.
1 идеи по разработки.
Весь текст игры будет храниться в текстовых файлах. Рассчитываю сделать только русский язык, перевод будет поддерживаться. Нужно будет лишь только создать текстовой документ под именем, например ENG.Location.ael .
1) Рассчитывал сделать загрузку картинок в видеокарту, а от туда показывать, но этот способ гораздо сложнее и при таком способе придётся ждать пока файлы будут загружаться.
2) Рассчитывал сделать, чтобы карты составлялись из картинок, а все свойства хранились в файле миссии, но мы обсудили это с программистом вариант не подходит не по логике.
3) Тут наши мнения разошлись его идея построить игру на дБ файле. Легко но меня такая идея не устраивает лишь только из-за того что разрешения файла дБ не поменяешь или делфи 7 или рад не будет его распознавать.
4) Идея сделать редактор объектов, в котором будет 2 вещи.
1) Это картинка объекта, например здание дом и т.п.
2) Свойства если отключены то все свойства будут равны либо 0, либо false.
5) И сделать редактор карт, который будет всю составленную карту из объектов содержать в файле.
6) Файлы миссии будут состоять из файла, который будет хранить цели. 1 цель будет приставлена в виде байта(Byte) допустим, занять все здания = 0 и это 1 цель.
7) Персонаж будет текстовой файл данных, так как характеристики персонажа должно можно быть менять, изменять.
8) Картинки персонажа я пока не придумал, как они будут существовать, но еще придумаю.
9) Ну конечно функции, процедуры всего прочего.
10) После завершения 1 бета версии игры сделать инструкции по как делать модификации к игре.
11) Пока что все идеи

Думаю кто из вас поможет в разработки совместного игрового движка

Забыл сказать код сюда пишете

Вот в эту темку


Сообщение отредактировал Александр5 - Суббота, 23 Февраля 2013, 20:42
Александр5Дата: Четверг, 21 Февраля 2013, 19:37 | Сообщение # 18 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр
частый гость
Сейчас нет на сайте
Вообще, советую использовать Delphi 7 (как достаточно популярную до сих пор) или одну из RAD-студий, например, 2007 (последняя не юникодовская).

пасибо но делфи 7 у меня вирусная диск купил 150 нелицензионный падла мало того не совместима с виндой 7 так еще после установки 3 недели и винда литит. также код от 5 и 7 несовпадает а вобще желательно 7 но не нужна образ диска маленьким весом под виндовс 7 х64 и 86 и 32 короче на все и еще я тут запись класса сделал так мне не верится что данные будут весить 1 кб вот код

Код

unit UN2_Object;

interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   ExtCtrls, StdCtrls, Buttons, ComCtrls, ExtDlgs;
type TObject_obj=class(TObject)
   Kartinka:tbitmap;
   Names:string[20];
   typesPO:BOOLEAN;
   tormoz_procent:integer;
   BOOLEAN_OBJECT:boolean;
   TYPE_OBJECT:BYTE;
   STOP_PERSONAZ:BOOLEAN;
end;
implementation

end.

unit UN_OBject;

interface

uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   ExtCtrls, StdCtrls, Buttons, ComCtrls, ExtDlgs,UN2_Object;

type
   TForm1 = class(TForm)
     BitBtn1: TBitBtn;
     Panel1: TPanel;
     Image1: TImage;
     Panel2: TPanel;
     RadioGroup2: TRadioGroup;
     RadioGroup1: TRadioGroup;
     Timer1: TTimer;
     CheckBox1: TCheckBox;
     Label1: TLabel;
     TrackBar1: TTrackBar;
     Label2: TLabel;
     OBR: TEdit;
     Label3: TLabel;
     Label4: TLabel;
     OpenPictureDialog1: TOpenPictureDialog;
     Button1: TButton;
     CheckBox2: TCheckBox;
     Label5: TLabel;
     procedure TrackBar1Change(Sender: TObject);
     procedure Timer1Timer(Sender: TObject);
     procedure BitBtn1Click(Sender: TObject);
     procedure Button1Click(Sender: TObject);
     procedure FormCreate(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
end;
const OBR_YES:STRING='(Да)';
OBR_NO:STRING='(Нет)';
var
   Form1: TForm1;
   Object1:TObject_obj;
   FILE_Object:file of TObject_obj;
   il:integer;
   fs: TSearchRec;
implementation

{$R *.DFM}

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
   Label1.Caption:=inttostr(TrackBar1.Position)+' %';
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   If RadioGroup1.ItemIndex=0then begin panel2.Enabled:=false; end;
   If RadioGroup1.ItemIndex=1then begin Panel2.Enabled:=true; end;
   If CheckBox1.Checked=true then begin Label2.Caption:=OBR_YES;end else begin Label2.Caption:=OBR_NO;end;
   If CheckBox2.Checked=true then begin Label5.Caption:=OBR_YES;end else begin Label5.Caption:=OBR_NO;end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   If openpicturedialog1.Execute then begin
     image1.Picture.LoadFromFile(openpicturedialog1.FileName);
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   Object1:=TObject_obj.Create;
   Object1.Kartinka:=tbitmap.Create;
   Object1.Kartinka:=image1.Picture.Bitmap;
   Object1.Names:=OBR.Text;
   case Radiogroup1.ItemIndex of
   0:begin
   Object1.typesPO:=false;
   end;
   1:begin
   Object1.typesPO:=true;
   end;
   end;
   if Object1.typesPO=true then begin
   object1.tormoz_procent:=0;
   object1.BOOLEAN_OBJECT:=false;
   object1.TYPE_OBJECT:=0;
   object1.STOP_PERSONAZ:=false;
   end else begin
     object1.tormoz_procent:=trackbar1.Position;
     object1.BOOLEAN_OBJECT:=checkbox1.Checked;
     Object1.TYPE_OBJECT:=Radiogroup2.ItemIndex+1;
     object1.STOP_PERSONAZ:=checkbox2.Checked;
   end;
   //Remained to do record
     assignfile(FILE_Object,extractfilepath(application.ExeName)+'\TObject_A\TObject_'+OBR.Text+'_'+inttostr(il+1)+'.TOBJ');
     rewrite(FILE_Object);
     write(FILE_Object,Object1);
     closefile(FILE_Object);
   //Destroy picture
   object1.Kartinka.FreeImage;
   Object1.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   if FindFirst(extractfilepath(application.ExeName)+'\TObject_A\'+'*.TOBJ',faAnyFile - faDirectory - faVolumeID, fs) = 0 then begin
     repeat
     inc(il);
     until FindNext(fs) <> 0;
     findclose(fs);
   end;
end;

end.


Поможешь чтото тут не так.

Кстати если код в делфи 5 и 7 индетичный и совпадает то дай ылку на 7 но маленький файл и совместимую с виндой 7 также как 5 рад у меня есть но на нем игру будет сложнее разрабатывать 1 код сильно отличается 2 стилей на много больше прийдется делать если учесть что на многие компоненты нельзя цвет поставить рад у меня XE3 и delphi 5
Александр5Дата: Четверг, 21 Февраля 2013, 15:30 | Сообщение # 19 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр
частый гость
Сейчас нет на сайте
Надешь тему и что в конструкторе и деконструторе писать

Добавлено (20.02.2013, 13:15)
---------------------------------------------
Как сделать запись класса
вот код

Код

unit UN_OBject;

interface

uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   ExtCtrls, StdCtrls, Buttons, ComCtrls, ExtDlgs, UN1_Object;

type
   TForm1 = class(TForm)
     BitBtn1: TBitBtn;
     Panel1: TPanel;
     Image1: TImage;
     Panel2: TPanel;
     RadioGroup2: TRadioGroup;
     RadioGroup1: TRadioGroup;
     Timer1: TTimer;
     CheckBox1: TCheckBox;
     Label1: TLabel;
     TrackBar1: TTrackBar;
     Label2: TLabel;
     OBR: TEdit;
     Label3: TLabel;
     Label4: TLabel;
     OpenPictureDialog1: TOpenPictureDialog;
     Button1: TButton;
     CheckBox2: TCheckBox;
     Label5: TLabel;
     procedure TrackBar1Change(Sender: TObject);
     procedure Timer1Timer(Sender: TObject);
     procedure BitBtn1Click(Sender: TObject);
     procedure Button1Click(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
end;
type RObject_obj=record
     Kartinka:tbitmap;
     Names:string[20];
     typesPO:BOOLEAN;
     tormoz_procent:integer;
     BOOLEAN_OBJECT:boolean;
     TYPE_OBJECT:BYTE;
     STOP_PERSONAZ:BOOLEAN;
   end;
type TObject_obj=class(TObject)
   Object_obj1:RObject_obj;
end;
const OBR_YES:STRING='(Да)';
OBR_NO:STRING='(Нет)';
var
   Form1: TForm1;
   Object1:TObject_obj;
implementation

{$R *.DFM}

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
   Label1.Caption:=inttostr(TrackBar1.Position)+' %';
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   If RadioGroup1.ItemIndex=0then begin panel2.Enabled:=false; end;
   If RadioGroup1.ItemIndex=1then begin Panel2.Enabled:=true; end;
   If CheckBox1.Checked=true then begin Label2.Caption:=OBR_YES;end else begin Label2.Caption:=OBR_NO;end;
   If CheckBox2.Checked=true then begin Label5.Caption:=OBR_YES;end else begin Label5.Caption:=OBR_NO;end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   If openpicturedialog1.Execute then begin
     image1.Picture.LoadFromFile(openpicturedialog1.FileName);
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   Object1.Object_obj1.Kartinka:=Tbitmap.Create;
   Object1.Object_obj1.Kartinka:=image1.Picture.Bitmap;
   Object1.Object_obj1.Names:=OBR.Text;
   case Radiogroup1.ItemIndex of
   0:begin
   Object1.Object_obj1.typesPO:=false;
   end;
   1:begin
   Object1.Object_obj1.typesPO:=true;
   end;
   end;
   if Object1.Object_obj1.typesPO=true then begin
   object1.Object_obj1.tormoz_procent:=0;
   object1.Object_obj1.BOOLEAN_OBJECT:=false;
   object1.Object_obj1.TYPE_OBJECT:=0;
   object1.Object_obj1.STOP_PERSONAZ:=false;
   end else begin
     object1.Object_obj1.tormoz_procent:=trackbar1.Position;
     object1.Object_obj1.BOOLEAN_OBJECT:=checkbox1.Checked;
     Object1.Object_obj1.TYPE_OBJECT:=Radiogroup2.ItemIndex+1;
     object1.Object_obj1.STOP_PERSONAZ:=checkbox2.Checked;
   end;
   //Remained to do record

   //Destroy picture
   object1.Object_obj1.Kartinka.FreeImage;
end;

end.

Добавлено (21.02.2013, 15:30)
---------------------------------------------
Как можно проверить существует ли папка в определенной директории или нет если нет то создать ее
функция function DirectoryExists ( const DirectoryName : string ) : Boolean; не работвает в Delphi 5 помоему ее там вобще нет а вот эта
CreateDir(dirName); работет

Александр5Дата: Пятница, 15 Февраля 2013, 23:26 | Сообщение # 20 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр
частый гость
Сейчас нет на сайте
Спасибо тут с игрой в делфи 5 возникла сможешь разобраться
Код

unit UN4_GAMES;

interface
uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls,Dialogs,
   StdCtrls, ExtCtrls;
TYPE
TGameRead=class(TThread) // класс для таймера игры
   private
   protected
   procedure Execute;override; // Запуск
   procedure Tic;              // Один тик программы
end;
Type TCreate_Graphic=class(TObject)
   OBJ_Stena:array[0..1] of TBitmap;
end;
  Procedure TCreate_new;
var i:integer;
   Graphics1:TCreate_Graphic;
   L1:TGameRead;
implementation
uses UN3_GAMES;
  procedure TGameRead.execute;
  begin
    repeat
      synchronize(Tic);
      until Terminated
  end;
procedure TGameRead.Tic;
   begin
   // Тут пишем все как в TTimer OnTime
end;
Procedure TCreate_new;
begin
   For i := 0 to 1 do begin
     Graphics1.OBJ_Stena[i]:=Tbitmap.Create;
   end;
   Graphics1.OBJ_Stena[0].LoadFromFile(ProgDir+'\Lefels1\Stena_1.bmp');
   Graphics1.OBJ_Stena[1].LoadFromFile(ProgDir+'Stena_2.bmp');
   L1:=TGameRead.Create(false); // Создаем поток
   L1.Priority:=TpHighest;      // Ставим приоритет
end;
end.

Ошибка системная вот тут
Код
For i := 0 to 1 do begin
     Graphics1.OBJ_Stena[i]:=Tbitmap.Create;
   end;
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг