--- oup/current/Tools/Preview.pas 2007/02/21 03:28:48 111 +++ oup/current/Tools/Preview.pas 2007/08/17 21:09:51 244 @@ -1,19 +1,21 @@ unit Preview; + interface + uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, Template, ExtCtrls, Math, StrUtils, - ConnectionManager, OniImgClass, Data, TypeDefs, Menus, Buttons; + Dialogs, _TemplateFileList, Menus, StdCtrls, ExtCtrls, Buttons, + TypeDefs, OniImgClass, VirtualTrees, ComCtrls; type - TForm_Preview = class(TForm_ToolTemplate) - lbl_notpossible: TLabel; + TForm_Preview = class(TForm_TemplateFileList) + img: TImage; panel_buttons: TPanel; btn_dec: TButton; btn_startstop: TButton; btn_inc: TButton; - img: TImage; timer: TTimer; + lbl_notpossible: TLabel; procedure FormCreate(Sender: TObject); procedure NewFile(fileinfo: TFileInfo); @@ -28,24 +30,25 @@ type procedure DrawImage(index: Integer); procedure SetBitmapCount(Count: Integer); procedure LoadImage(fileid, index: Integer); + procedure Splitter1Moved(Sender: TObject); private - bitmaps: array of TBitmap; + bitmaps: array of TOniImage; actualimg: Byte; _fileid: Integer; public end; -var - Form_Preview: TForm_Preview; - implementation {$R *.dfm} +uses + ConnectionManager, Math, _TemplateFile; procedure TForm_Preview.FormCreate(Sender: TObject); begin inherited; Self.OnNewFileSelected := NewFile; + SetBitmapCount(0); end; @@ -54,6 +57,7 @@ var ext: String; begin _fileid := fileinfo.ID; + SetBitmapCount(0); if _fileid >= 0 then begin lbl_notpossible.Visible := False; @@ -82,27 +86,14 @@ end; procedure TForm_Preview.LoadImage(fileid, index: Integer); -var - memstream: TMemoryStream; - OniImage: TOniImage; begin - OniImage := TOniImage.Create; - OniImage.Load(ConnectionID, fileid); - memstream := TMemoryStream.Create; - OniImage.GetAsBMP(TStream(memstream)); - OniImage.Free; - bitmaps[index].LoadFromStream(memstream); - memstream.Free; + bitmaps[index].Load(ConnectionID, fileid); end; procedure TForm_Preview.DrawImage(index: Integer); begin - BitBlt(img.Canvas.Handle, 0, 0, img.Width, img.Height, - bitmaps[index].Canvas.Handle, 0, 0, WHITENESS); - BitBlt(img.Canvas.Handle, 0, 0, bitmaps[index].Width, bitmaps[index].Height, - bitmaps[index].Canvas.Handle, 0, 0, SRCCOPY); - img.Invalidate; + bitmaps[index].DrawOnCanvas(img.Canvas, 1); end; @@ -121,11 +112,19 @@ begin i := Length(bitmaps); SetLength(bitmaps, Count); for i := i to High(bitmaps) do - bitmaps[i] := TBitmap.Create; + bitmaps[i] := TOniImage.Create; end; end; +procedure TForm_Preview.Splitter1Moved(Sender: TObject); +begin + inherited; + img.Picture.Assign(nil); + if Length(bitmaps) > 0 then + DrawImage(0); +end; + procedure TForm_Preview.PreviewImage; begin SetBitmapCount(1); @@ -171,6 +170,8 @@ begin Self.timer.Enabled := not Self.timer.Enabled; Self.btn_dec.Enabled := not Self.timer.Enabled; Self.btn_inc.Enabled := not Self.timer.Enabled; + if self.timer.Enabled then + timerTimer(Self); if Self.timer.Enabled then Self.btn_startstop.Caption := 'Stop automatic' else @@ -211,4 +212,5 @@ end; begin AddToolListEntry('preview', 'Preview-Window', ''); -end. \ No newline at end of file +end. +