--- oup/current/Tools/TxmpReplace.pas 2007/05/26 14:24:55 193 +++ oup/current/Tools/TxmpReplace.pas 2007/05/26 18:26:48 194 @@ -27,6 +27,7 @@ type procedure btn_saveClick(Sender: TObject); procedure btn_loadClick(Sender: TObject); procedure btn_replaceClick(Sender: TObject); + procedure Splitter1Moved(Sender: TObject); private OniImage_Old: TOniImage; OniImage_New: TOniImage; @@ -56,7 +57,7 @@ begin OniImage_Old.LoadFromTXMP(ConnectionID, fileid); old_size := OniImage_Old.GetImageSize(True); - OniImage_Old.DrawOnCanvas(image_txmppreview.Canvas, 2); + OniImage_Old.DrawOnCanvas(image_txmppreview.Canvas, 1); check_fading.Checked := OniImage_Old.HasMipMaps; // check_transparency.Checked := (depthbyte and $04) > 0; @@ -66,6 +67,17 @@ begin end; +procedure TForm_TxmpReplace.Splitter1Moved(Sender: TObject); +begin + inherited; + image_txmppreview.Picture.Assign(nil); + image_bmppreview.Picture.Assign(nil); + if Length(OniImage_Old.Images) > 0 then + OniImage_Old.DrawOnCanvas(image_txmppreview.Canvas, 1); + if Length(OniImage_New.Images) > 0 then + OniImage_New.DrawOnCanvas(image_bmppreview.Canvas, 1); +end; + procedure TForm_TxmpReplace.btn_loadClick(Sender: TObject); var mem: TMemoryStream; @@ -89,6 +101,7 @@ var datbyte: Word; mem: TMemoryStream; new_storetype: Byte; + formatinfo: TImageFormatInfo; begin if filelist.ItemIndex >= 0 then begin @@ -126,6 +139,13 @@ begin ifX8R8G8B8: new_storetype := 8; ifDXT1: new_storetype := 9; else + if OniImage_New.FormatInfo.HasAlphaChannel then + ShowMessage('Loaded image has an alpha-channel.' + #13#10 + + 'Because the format is neither ARGB1555' +#13#10 + + 'nor ARGB4444 it can not be imported without conversion.' + #13#10 + + 'It is converted to RGB888, so alpha gets dropped.' + #13#10 + + 'If you need alpha you have to save your image in' + #13#10 + + 'one of the previously named formats.'); OniImage_New.Format := ifX8R8G8B8; new_storetype := 8; end; @@ -163,6 +183,7 @@ begin ConManager.Connection[ConnectionID].UpdateDatFilePart(fileid, $9C, 4, @new_rawaddr); ShowMessage('TXMP-image replaced'); + Self.listClick(Self); end; end;