home *** CD-ROM | disk | FTP | other *** search
/ PC Format Collection 48 / SENT14D.ISO / tech / delphi / disk15 / imagview.pak / IMAGEWIN.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-08-24  |  3.2 KB  |  118 lines

  1. unit ImageWin;
  2.  
  3. interface
  4.  
  5. uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls,
  6.   FileCtrl, StdCtrls, ExtCtrls, Buttons, Spin;
  7.  
  8. type
  9.   TImageForm = class(TForm)
  10.     DirectoryListBox1: TDirectoryListBox;
  11.     DriveComboBox1: TDriveComboBox;
  12.     PathLabel: TLabel;
  13.     FileEdit: TEdit;
  14.     UpDownGroup: TGroupBox;
  15.     SpeedButton1: TSpeedButton;
  16.     BitBtn1: TBitBtn;
  17.     DisabledGrp: TGroupBox;
  18.     SpeedButton2: TSpeedButton;
  19.     BitBtn2: TBitBtn;
  20.     Panel1: TPanel;
  21.     Image1: TImage;
  22.     FileListBox1: TFileListBox;
  23.     Label1: TLabel;
  24.     SpinEdit1: TSpinEdit;
  25.     Label2: TLabel;
  26.     ViewBtn: TBitBtn;
  27.     Bevel1: TBevel;
  28.     Bevel2: TBevel;
  29.     FilterComboBox1: TFilterComboBox;
  30.     CheckBox1: TCheckBox;
  31.     StretchCheck: TCheckBox;
  32.     procedure FileListBox1Click(Sender: TObject);
  33.     procedure SpinEdit1Change(Sender: TObject);
  34.     procedure ViewBtnClick(Sender: TObject);
  35.     procedure ViewAsGlyph(const FileExt: string);
  36.     procedure CheckBox1Click(Sender: TObject);
  37.     procedure StretchCheckClick(Sender: TObject);
  38.     procedure FileEditKeyPress(Sender: TObject; var Key: Char);
  39.   end;
  40.  
  41. var
  42.   ImageForm: TImageForm;
  43.  
  44. implementation
  45.  
  46. uses ViewWin, SysUtils;
  47.  
  48. {$R *.DFM}
  49.  
  50. procedure TImageForm.FileListBox1Click(Sender: TObject);
  51. var
  52.   FileExt: string[4];
  53. begin
  54.   FileExt := UpperCase(ExtractFileExt(FileListBox1.Filename));
  55.   if (FileExt = '.BMP') or (FileExt = '.ICO') or (FileExt = '.WMF') then
  56.   begin
  57.     Image1.Picture.LoadFromFile(FileListBox1.Filename);
  58.     Label1.Caption := ExtractFilename(FileListBox1.Filename);
  59.     if (FileExt = '.BMP') then
  60.     begin
  61.       Label1.Caption := Label1.Caption + 
  62.         Format(' (%d x %d)', [Image1.Picture.Width, Image1.Picture.Height]);
  63.       ViewForm.Image1.Picture := Image1.Picture;
  64.       ViewAsGlyph(FileExt);
  65.     end;
  66.     if FileExt = '.ICO' then Icon := Image1.Picture.Icon;
  67.     if FileExt = '.WMF' then 
  68.       ViewForm.Image1.Picture.Metafile := Image1.Picture.Metafile;
  69.   end;
  70. end;
  71.  
  72. procedure TImageForm.CheckBox1Click(Sender: TObject);
  73. begin
  74.   ViewAsGlyph(UpperCase(ExtractFileExt(FileListBox1.Filename)));
  75. end;
  76.  
  77. procedure TImageForm.ViewAsGlyph(const FileExt: string);
  78. begin
  79.   if CheckBox1.Checked and (FileExt = '.BMP') then 
  80.   begin
  81.     SpeedButton1.Glyph := Image1.Picture.Bitmap;
  82.     SpeedButton2.Glyph := Image1.Picture.Bitmap;
  83.     SpinEdit1.Value := SpeedButton1.NumGlyphs;
  84.     BitBtn1.Glyph := Image1.Picture.Bitmap;
  85.     BitBtn2.Glyph := Image1.Picture.Bitmap;
  86.   end;
  87. end;
  88.  
  89. procedure TImageForm.ViewBtnClick(Sender: TObject);
  90. begin
  91.   ViewForm.HorzScrollBar.Range := Image1.Picture.Width;
  92.   ViewForm.VertScrollBar.Range := Image1.Picture.Height;
  93.   ViewForm.Caption := Label1.Caption;
  94.   ViewForm.Show;
  95. end;
  96.  
  97. procedure TImageForm.SpinEdit1Change(Sender: TObject);
  98. begin
  99.   SpeedButton1.NumGlyphs := SpinEdit1.Value;
  100.   SpeedButton2.NumGlyphs := SpinEdit1.Value;
  101. end;
  102.  
  103. procedure TImageForm.StretchCheckClick(Sender: TObject);
  104. begin
  105.   Image1.Stretch := StretchCheck.Checked;
  106. end;
  107.  
  108. procedure TImageForm.FileEditKeyPress(Sender: TObject; var Key: Char);
  109. begin
  110.   if Key = #13 then 
  111.   begin
  112.     FileListBox1.ApplyFilePath(FileEdit.Text);
  113.     Key := #0;
  114.   end;
  115. end;
  116.  
  117. end.
  118.