mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-05-22 21:35:49 +00:00
95 lines
2.0 KiB
ObjectPascal
95 lines
2.0 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.
|