--- oup/current/Tools/TxmpReplace.pas 2007/05/26 20:41:34 199 +++ oup/current/Tools/TxmpReplace.pas 2007/06/18 14:49:24 224 @@ -1,26 +1,29 @@ unit TxmpReplace; + interface + uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, Template, StdCtrls, ExtCtrls, - Functions, Data, OniImgClass, Menus, Buttons, TypeDefs; + Dialogs, _TemplateFileList, Menus, StdCtrls, Buttons, ComCtrls, ExtCtrls, + OniImgClass, TypeDefs; type - TForm_TxmpReplace = class(TForm_ToolTemplate) + TForm_TxmpReplace = class(TForm_TemplateFileList) group_options: TGroupBox; btn_replace: TButton; check_transparency: TCheckBox; check_fading: TCheckBox; - panel_txmppreview: TPanel; - btn_save: TButton; - image_txmppreview: TImage; - splitter_txmp: TSplitter; + GroupBox1: TGroupBox; + Splitter1: TSplitter; group_bmpselect: TGroupBox; image_bmppreview: TImage; panel_load: TPanel; btn_load: TButton; - opend: TOpenDialog; + image_txmppreview: TImage; + panel_txmppreview: TPanel; + btn_save: TButton; saved: TSaveDialog; + opend: TOpenDialog; procedure SelectFile(fileinfo: TFileInfo); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); @@ -36,18 +39,13 @@ type public end; -var - Form_TxmpReplace: TForm_TxmpReplace; - implementation {$R *.dfm} -uses Main, ConnectionManager, ImagingTypes; - - +uses + _TemplateFile, ConnectionManager, ImagingTypes; procedure TForm_TxmpReplace.SelectFile(fileinfo: TFileInfo); var - mem: TMemoryStream; fadingbyte, depthbyte, storebyte: Byte; begin fileid := fileinfo.ID; @@ -79,8 +77,6 @@ begin end; procedure TForm_TxmpReplace.btn_loadClick(Sender: TObject); -var - mem: TMemoryStream; begin if opend.Execute then begin @@ -101,7 +97,9 @@ var datbyte: Word; mem: TMemoryStream; new_storetype: Byte; - formatinfo: TImageFormatInfo; + i: Integer; +const + powers: array[0..8] of Integer = (1, 2, 4, 8, 16, 32, 64, 128, 256); begin if filelist.ItemIndex >= 0 then begin @@ -111,6 +109,28 @@ begin else ConManager.Connection[ConnectionID].LoadDatFilePart(fileid, $9C, 4, @old_rawaddr); + if (OniImage_New.Width[1] > 256) or (OniImage_New.Height[1] > 256) then + begin + ShowMessage('Widht and height have to be smaller than or equal to 256.'); + Exit; + end; + for i := 0 to High(powers) do + if OniImage_New.Width[1] = powers[i] then + Break; + if i = Length(powers) then + begin + ShowMessage('Width has to be a power of 2 (1, 2, 4, 8, 16 ...)'); + Exit; + end; + for i := 0 to High(powers) do + if OniImage_New.Height[1] = powers[i] then + Break; + if i = Length(powers) then + begin + ShowMessage('Height has to be a power of 2 (1, 2, 4, 8, 16 ...)'); + Exit; + end; + if (OniImage_Old.Width[1] <> OniImage_New.Width[1]) or (OniImage_Old.Height[1] <> OniImage_New.Height[1]) then begin @@ -223,4 +243,5 @@ end; begin AddToolListEntry('txmpreplace', 'TXMP Replacer', 'TXMP'); -end. \ No newline at end of file +end. +