mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-06-01 19:04:38 +00:00
95 lines
2.1 KiB
ObjectPascal
95 lines
2.1 KiB
ObjectPascal
unit uMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, OleCtrls, ShockwaveFlashObjects_TLB, StdCtrls, ExtCtrls;
|
|
|
|
type
|
|
TfrmMain = class(TForm)
|
|
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormResize(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
type
|
|
TMySWF = class(TShockwaveFlash)
|
|
public
|
|
Procedure CreateWnd; override;
|
|
end;
|
|
|
|
var
|
|
frmMain: TfrmMain;
|
|
flaPreview: TMySWF;
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
Procedure TMySWF.CreateWnd;
|
|
begin
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrmMain.FormCreate(Sender: TObject);
|
|
const
|
|
exeSize = 470016;
|
|
var
|
|
stream: TFileStream;
|
|
buffer: array of Byte;
|
|
tempFile: array[0..MAX_PATH - 1] of Char;
|
|
tempPath: array[0..MAX_PATH - 1] of Char;
|
|
flashVarData : TVarData;
|
|
width: Integer;
|
|
height: Integer;
|
|
scaleMode: Byte;
|
|
begin
|
|
flaPreview := TMySWF.Create(frmMain);
|
|
flaPreview.Parent := frmMain;
|
|
flaPreview.Anchors := [akLeft, akRight, akTop, akBottom];
|
|
flaPreview.Align := alClient;
|
|
GetTempPath(MAX_PATH, TempPath);
|
|
if GetTempFileName(TempPath, PAnsiChar('ffd'), 0, TempFile) = 0 then
|
|
raise Exception.Create(
|
|
'GetTempFileName API failed. ' + SysErrorMessage(GetLastError)
|
|
);
|
|
try
|
|
stream := TFileStream.Create(ParamStr(0), fmOpenRead);
|
|
stream.Seek(exeSize, soBeginning);
|
|
stream.Read(width, 4);
|
|
stream.Read(height, 4);
|
|
stream.Read(scaleMode, 1);
|
|
SetLength(buffer, stream.Size - exeSize);
|
|
try
|
|
stream.Read(buffer[0], Length(buffer));
|
|
finally
|
|
stream.Free;
|
|
end;
|
|
except
|
|
width := 12800;
|
|
height := 9600;
|
|
scaleMode := 3;
|
|
end;
|
|
ClientWidth := width div 20;
|
|
ClientHeight := height div 20;
|
|
stream := TFileStream.Create(tempFile, fmOpenWrite);
|
|
try
|
|
stream.Write(buffer[0], Length(buffer));
|
|
finally
|
|
stream.Free;
|
|
end;
|
|
flaPreview.Movie := tempFile;
|
|
flaPreview.ScaleMode := scaleMode;
|
|
end;
|
|
|
|
procedure TfrmMain.FormResize(Sender: TObject);
|
|
begin
|
|
flaPreview.CreateWnd;
|
|
end;
|
|
|
|
end.
|