94 lines
2.1 KiB
Plaintext
94 lines
2.1 KiB
Plaintext
unit uCreateGame;
|
|
|
|
interface
|
|
|
|
uses
|
|
System.SysUtils, System.Types, System.UITypes, System.Classes,
|
|
System.Variants,
|
|
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Edit,
|
|
FMX.EditBox, FMX.SpinBox, FMX.ListBox, FMX.StdCtrls,
|
|
FMX.Controls.Presentation,
|
|
System.Generics.Collections, System.IOUtils;
|
|
|
|
type
|
|
TfCreateGame = class(TForm)
|
|
Button1: TButton;
|
|
Label1: TLabel;
|
|
cbGames: TComboBox;
|
|
Label2: TLabel;
|
|
sbWebServerPort: TSpinBox;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure Button1Click(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
fCreateGame: TfCreateGame;
|
|
|
|
implementation
|
|
|
|
{$R *.fmx}
|
|
|
|
uses uGeneral;
|
|
|
|
function GetGameFolders(const ARootDir: string): TArray<string>;
|
|
var
|
|
gamesPath: string;
|
|
folders: TStringDynArray;
|
|
i: Integer;
|
|
begin
|
|
// Ôîðìèðóåì ïîëíûé ïóòü ê ïàïêå ñ èãðàìè
|
|
gamesPath := IncludeTrailingPathDelimiter(ARootDir) + 'games';
|
|
|
|
// Ïðîâåðÿåì ñóùåñòâîâàíèå ïàïêè
|
|
if not TDirectory.Exists(gamesPath) then
|
|
begin
|
|
SetLength(Result, 0);
|
|
Exit;
|
|
end;
|
|
|
|
// Ïîëó÷àåì ñïèñîê ïîäïàïîê
|
|
folders := TDirectory.GetDirectories(gamesPath);
|
|
SetLength(Result, Length(folders));
|
|
|
|
// Èçâëåêàåì òîëüêî èìåíà ïàïîê (áåç ïîëíîãî ïóòè)
|
|
for i := 0 to High(folders) do
|
|
Result[i] := ExtractFileName(ExcludeTrailingPathDelimiter(folders[i]));
|
|
end;
|
|
|
|
procedure TfCreateGame.Button1Click(Sender: TObject);
|
|
begin
|
|
if cbGames.Text = '' then
|
|
Exit;
|
|
TTW_Bot.frOBS1.addGame(cbGames.Text, round(sbWebServerPort.Value));
|
|
close;
|
|
end;
|
|
|
|
procedure TfCreateGame.FormCreate(Sender: TObject);
|
|
var
|
|
gameFolders: TArray<string>;
|
|
folder: string;
|
|
begin
|
|
// Ïîëó÷àåì ñïèñîê èãðîâûõ ïàïîê
|
|
gameFolders := GetGameFolders(ExtractFilePath(ParamStr(0)));
|
|
// Óêàæèòå âàø êîðíåâîé ïóòü
|
|
|
|
// Çàïîëíÿåì ñïèñîê (íàïðèìåð, TComboBox)
|
|
cbGames.Items.BeginUpdate;
|
|
try
|
|
cbGames.Items.Clear;
|
|
for folder in gameFolders do
|
|
cbGames.Items.Add(folder);
|
|
finally
|
|
cbGames.Items.EndUpdate;
|
|
end;
|
|
|
|
if cbGames.Items.Count > 0 then
|
|
cbGames.ItemIndex := 0;
|
|
end;
|
|
|
|
end.
|