home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 January / Chip_1999-01_cd.bin / zkuste / delphi / D1 / TIMAGEFX.ZIP / fx101frm.pas < prev    next >
Pascal/Delphi Source File  |  1996-06-27  |  5KB  |  213 lines

  1. unit Fx101frm;
  2.  
  3. interface
  4.  
  5. uses
  6.     SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.     Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, ImageFX;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.         Panel3: TPanel;
  12.         BitBtn2: TBitBtn;
  13.         Panel2: TPanel;
  14.     BitBtn1: TBitBtn;
  15.     Label1: TLabel;
  16.     Label2: TLabel;
  17.     DelayScroller: TScrollBar;
  18.     RateScroller: TScrollBar;
  19.     Label3: TLabel;
  20.     Label4: TLabel;
  21.     Panel1: TPanel;
  22.     ImageFX1: TImageFX;
  23.         procedure FormResize(Sender: TObject);
  24.         procedure BitBtn1Click(Sender: TObject);
  25.     procedure DelayScrollerChange(Sender: TObject);
  26.     procedure RateScrollerChange(Sender: TObject);
  27.         procedure ImageFX1Complete(Sender: TObject);
  28.     private
  29.         procedure WaitForEffect;
  30.     public
  31.         { Public declarations }
  32.     end;
  33.  
  34. var
  35.     Form1: TForm1;
  36.  
  37. implementation
  38.  
  39. uses AbtImgFX;
  40.  
  41. {$R *.DFM}
  42.  
  43. procedure TForm1.FormResize(Sender: TObject);
  44. const EffectType: string = ' Effect: ';
  45. begin
  46.     if ImageFX1.Busy then        {Run-time read only property to indicate when an effect is being processed}
  47.         exit;                                    {This prevents stack overflow from doing multiple effects at once...a nasty GPF!}
  48.  
  49.     ImageFX1.EffectDelay := DelayScroller.Position;
  50.     ImageFX1.EffectRate := RateScroller.Position;
  51.  
  52.     Label3.Caption := IntToStr(DelayScroller.Position);
  53.     Label4.Caption := IntToStr(RateScroller.Position);
  54.  
  55.     ImageFX1.LoadFromFile('earth.bmp');
  56.     ImageFX1.Effect := ViewExplode;
  57.     Panel3.Caption := EffectType + 'ViewExplode';
  58.     ImageFX1.ShowEffect;
  59.     WaitForEffect;
  60.  
  61.     ImageFX1.Effect := ViewZoomIn;
  62.     Panel3.Caption := EffectType + 'ViewZoomIn';
  63.     ImageFX1.ShowEffect;
  64.     WaitForEffect;
  65.  
  66.     ImageFX1.Effect := ViewZoomOut;
  67.     Panel3.Caption := EffectType + 'ViewZoomOut';
  68.     ImageFX1.ShowEffect;
  69.     WaitForEffect;
  70.  
  71.     ImageFX1.LoadFromFile('skyline.bmp');
  72.     ImageFX1.Effect := HideImplode;
  73.     Panel3.Caption := EffectType + 'HideImplode';
  74.     ImageFX1.ShowEffect;
  75.     WaitForEffect;
  76.  
  77.     ImageFX1.Effect := HideZoomIn;
  78.     Panel3.Caption := EffectType + 'HideZoomIn';
  79.     ImageFX1.ShowEffect;
  80.     WaitForEffect;
  81.  
  82.     ImageFX1.Effect := HideZoomOut;
  83.     Panel3.Caption := EffectType + 'HideZoomOut';
  84.     ImageFX1.ShowEffect;
  85.     WaitForEffect;
  86.  
  87.     ImageFX1.LoadFromFile('earth.bmp');
  88.     ImageFX1.Effect := WipeRightRoll;
  89.     Panel3.Caption := EffectType + 'WipeRightRoll';
  90.     ImageFX1.ShowEffect;
  91.     WaitForEffect;
  92.  
  93.     ImageFX1.Effect := WipeRightSlide;
  94.     Panel3.Caption := EffectType + 'WipeRightSlide';
  95.     ImageFX1.ShowEffect;
  96.     WaitForEffect;
  97.  
  98.     ImageFX1.Effect := WipeRightStretch;
  99.     Panel3.Caption := EffectType + 'WipeRightStretch';
  100.     ImageFX1.ShowEffect;
  101.     WaitForEffect;
  102.  
  103.     ImageFX1.LoadFromFile('skyline.bmp');
  104.     ImageFX1.Effect := WipeLeftRoll;
  105.     Panel3.Caption := EffectType + 'WipeLeftRoll';
  106.     ImageFX1.ShowEffect;
  107.     WaitForEffect;
  108.  
  109.     ImageFX1.Effect := WipeLeftSlide;
  110.     Panel3.Caption := EffectType + 'WipeLeftSlide';
  111.     ImageFX1.ShowEffect;
  112.     WaitForEffect;
  113.  
  114.     ImageFX1.Effect := WipeLeftStretch;
  115.     Panel3.Caption := EffectType + 'WipeLeftStretch';
  116.     ImageFX1.ShowEffect;
  117.     WaitForEffect;
  118.  
  119.     ImageFX1.LoadFromFile('earth.bmp');
  120.     ImageFX1.Effect := WipeUpRoll;
  121.     Panel3.Caption := EffectType + 'WipeUpRoll';
  122.     ImageFX1.ShowEffect;
  123.     WaitForEffect;
  124.  
  125.     ImageFX1.Effect := WipeUpSlide;
  126.     Panel3.Caption := EffectType + 'WipeUpSlide';
  127.     ImageFX1.ShowEffect;
  128.     WaitForEffect;
  129.  
  130.     ImageFX1.Effect := WipeUpStretch;
  131.     Panel3.Caption := EffectType + 'WipeUpStretch';
  132.     ImageFX1.ShowEffect;
  133.     WaitForEffect;
  134.  
  135.     ImageFX1.LoadFromFile('skyline.bmp');
  136.     ImageFX1.Effect := WipeDownRoll;
  137.     Panel3.Caption := EffectType + 'WipeDownRoll';
  138.     ImageFX1.ShowEffect;
  139.     WaitForEffect;
  140.  
  141.     ImageFX1.Effect := WipeDownSlide;
  142.     Panel3.Caption := EffectType + 'WipeDownSlide';
  143.     ImageFX1.ShowEffect;
  144.     WaitForEffect;
  145.  
  146.     ImageFX1.Effect := WipeDownStretch;
  147.     Panel3.Caption := EffectType + 'WipeDownStretch';
  148.     ImageFX1.ShowEffect;
  149.     WaitForEffect;
  150.  
  151.     ImageFX1.LoadFromFile('earth.bmp');
  152.     ImageFX1.Effect := SideCurtainRoll;
  153.     Panel3.Caption := EffectType + 'SideCurtainRoll';
  154.     ImageFX1.ShowEffect;
  155.     WaitForEffect;
  156.  
  157.     ImageFX1.LoadFromFile('skyline.bmp');
  158.     ImageFX1.Effect := VertCurtainRoll;
  159.     Panel3.Caption := EffectType + 'VertCurtainRoll';
  160.     ImageFX1.ShowEffect;
  161.     WaitForEffect;
  162.  
  163.     ImageFX1.Effect := HideZoomOut;
  164.     Panel3.Caption := EffectType + 'HideZoomOut';
  165.     ImageFX1.ShowEffect;
  166.     WaitForEffect;
  167.  
  168.     ImageFX1.LoadFromFile('skyline.bmp');
  169.     ImageFX1.Effect := None;
  170.     Panel3.Caption := EffectType + 'None';
  171.     ImageFX1.ShowEffect;
  172.     WaitForEffect;
  173. end;
  174.  
  175. {A loop to allow current wipe to finish and change effect rate and delay during draw}
  176. procedure TForm1.WaitForEffect;
  177. begin
  178.     BitBtn1.Enabled := False;
  179.     while ImageFX1.Busy do
  180.     begin
  181.         Application.ProcessMessages;
  182.         ImageFX1.EffectDelay := DelayScroller.Position;
  183.         ImageFX1.EffectRate := RateScroller.Position;
  184.  
  185.         Label3.Caption := IntToStr(DelayScroller.Position);
  186.         Label4.Caption := IntToStr(RateScroller.Position);
  187.     end;
  188.     BitBtn1.Enabled := True;
  189. end;
  190.  
  191. procedure TForm1.BitBtn1Click(Sender: TObject);
  192. begin
  193.     AboutBox.Show;
  194. end;
  195.  
  196. procedure TForm1.DelayScrollerChange(Sender: TObject);
  197. begin
  198.     Label3.Caption := IntToStr(DelayScroller.Position);
  199. end;
  200.  
  201. procedure TForm1.RateScrollerChange(Sender: TObject);
  202. begin
  203.     Label4.Caption := IntToStr(RateScroller.Position);
  204. end;
  205.  
  206. procedure TForm1.ImageFX1Complete(Sender: TObject);
  207. begin
  208.     ShowMessage(Panel3.Caption + ' is complete');
  209. end;
  210.  
  211. initialization
  212. end.
  213.