134 lines
3.4 KiB
ObjectPascal

(* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is TurboPower Abbrevia
*
* The Initial Developer of the Original Code is
* TurboPower Software
*
* Portions created by the Initial Developer are Copyright (C) 1997-2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** *)
{*********************************************************}
{* ABBREVIA: QUFINDER.PAS *}
{*********************************************************}
{* ABBREVIA Example program file *}
{*********************************************************}
unit QuFinder;
interface
uses
{$IFDEF Win32}
Windows,
{$ELSE}
{$ENDIF}
SysUtils, Classes, QGraphics, QForms, AbZBrows, AbArcTyp, AbBrowse,
AbBase, QStdCtrls, QControls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Memo1: TMemo;
AbZipBrowser1: TAbZipBrowser;
Memo2: TMemo;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
Aborted: Boolean;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.xfm}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Aborted := True;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
Button1.Enabled := Length( Edit1.Text ) > 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
CurFile : string;
sr : TSearchRec;
begin
Button1.Enabled := False;
Memo1.Clear;
try
Button2.Enabled := True;
Aborted := False;
{look in the file list box for the file}
if FindFirst ('*', faAnyFile, sr) = 0 then
repeat
Application.ProcessMessages;
if Aborted then
break;
if CompareText( Edit1.Text, sr.Name ) = 0 then begin
{$IFDEF MSWINDOWS}
Memo1.Lines.Add( 'Found in ' + ExtractFilePath(sr.Name));
{$ENDIF}
{$IFDEF LINUX}
Memo1.Lines.Add( 'Found in ' + sr.PathOnly);
{$ENDIF}
break;
end;
{now add search of zip and self extracting files}
CurFile := UpperCase( sr.Name );
if ( Pos( '.zip', CurFile ) > 0 ) or
( Pos( '.exe', CurFile ) > 0 ) then begin
try
AbZipBrowser1.FileName := sr.Name;
if AbZipBrowser1.FindFile(Edit1.Text) >= 0 then
Memo1.Lines.Add( 'Found in ' + sr.Name);
except
end;
end;
until FindNext (sr) <> 0;
FindClose (sr);
finally
Memo1.Lines.Add( 'Done!' );
Edit1.Enabled := True;
Button1.Enabled := True;
Button2.Enabled := False;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Aborted := True;
end;
end.