home *** CD-ROM | disk | FTP | other *** search
/ Delphi Programming Unleashed / Delphi_Programming_Unleashed_SAMS_Publishing_1995.iso / misc / explorer / viewer.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-03-21  |  2.7 KB  |  120 lines

  1. unit Viewer;
  2.  
  3. { Program copyright (c) 1995 by Charles Calvert & Steve Teixeira }
  4. { Project Name: EXPLORER }
  5.  
  6. interface
  7.  
  8. uses
  9.   WinTypes, WinProcs, SysUtils,
  10.   Classes, Graphics,
  11.   Forms, Controls,
  12.   Buttons, Dialogs,
  13.   Messages, StdCtrls, ExtCtrls;
  14.  
  15. type
  16.   TFileViewer = class(TForm)
  17.     ListBox1: TListBox;
  18.     Panel1: TPanel;
  19.     Ok: TBitBtn;
  20.     BitBtn1: TBitBtn;
  21.     BPrev: TBitBtn;
  22.     BitBtn2: TBitBtn;
  23.     BNext: TBitBtn;
  24.     BitBtn3: TBitBtn;
  25.     Label1: TLabel;
  26.     Label2: TLabel;
  27.     Edit1: TEdit;
  28.     procedure FormResize(Sender: TObject);
  29.     procedure OkClick(Sender: TObject);
  30.     procedure BPrevClick(Sender: TObject);
  31.     procedure BNextClick(Sender: TObject);
  32.     procedure Edit1KeyDown(Sender: TObject; var Key: Word;
  33.       Shift: TShiftState);
  34.     procedure FormActivate(Sender: TObject);
  35.   private
  36.     CurNext: Integer;
  37.   public
  38.     FileName: String;
  39.   end;
  40.  
  41. var
  42.   FileViewer: TFileViewer;
  43.  
  44. implementation
  45.  
  46. {$R *.DFM}
  47.  
  48. procedure TFileViewer.FormResize(Sender: TObject);
  49. begin
  50.   ListBox1.Width := ClientWidth - 20;
  51.   ListBox1.Height := ClientHeight - Panel1.Height - 15;
  52.   Edit1.Width := (ClientWidth - 30) - Edit1.Left;
  53. end;
  54.  
  55. procedure TFileViewer.OkClick(Sender: TObject);
  56. begin
  57.   Close;
  58. end;
  59.  
  60. procedure TFileViewer.BPrevClick(Sender: TObject);
  61. var
  62.   Temp, i: Integer;
  63.   S: String;
  64. begin
  65.   Temp := CurNext;
  66.   CurNext := CurNext - 2;
  67.   for i := CurNext downto 0 do begin
  68.     S := ListBox1.Items.Strings[i];
  69.     if Pos(LowerCase(Edit1.Text), LowerCase(S)) > 0 then begin
  70.       ListBox1.ItemIndex := i;
  71.       break;
  72.     end;
  73.   end;
  74.   if i = 0 then begin
  75.     MessageBox(Handle, 'Top of list', 'Not Found', mb_Ok);
  76.     CurNext := Temp
  77.   end else
  78.     CurNext := i - 1;
  79. end;
  80.  
  81. procedure TFileViewer.BNextClick(Sender: TObject);
  82. var
  83.   i: Integer;
  84.   S: String;
  85.   Temp: Integer;
  86. begin
  87.   Temp := CurNext;
  88.   for i := CurNext to ListBox1.Items.Count do begin
  89.     S := ListBox1.Items.Strings[i];
  90.     if Pos(LowerCase(Edit1.Text), LowerCase(S)) > 0 then begin
  91.       ListBox1.ItemIndex := i;
  92.       break;
  93.     end;
  94.   end;
  95.   if i = ListBox1.Items.Count then begin
  96.     MessageBox(Handle, 'Bottom of List', 'Not Found', mb_Ok);
  97.     CurNext := Temp
  98.   end else
  99.     CurNext := i + 1;
  100. end;
  101.  
  102. procedure TFileViewer.Edit1KeyDown(Sender: TObject; var Key: Word;
  103.   Shift: TShiftState);
  104. begin
  105.   if Key = 13 then BNextClick(nil);
  106. end;
  107.  
  108. procedure TFileViewer.FormActivate(Sender: TObject);
  109. var
  110.   x, y: Integer;
  111. begin
  112.   CurNext := 0;
  113.   x := GetSystemMetrics(SM_CXFullScreen);
  114.   y := GetSystemMetrics(SM_CYFullScreen);
  115.   BoundsRect := Rect(20, 20, x - 20, y - 20);
  116.   Caption := 'FileView -- ' + UpperCase(FileName);
  117. end;
  118.  
  119. end.
  120.