From: Olivier S. <ob...@us...> - 2005-06-29 10:07:58
|
Update of /cvsroot/jvcl/dev/JVCL3/examples/JvSearchFile/BCB In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3171/dev/JVCL3/examples/JvSearchFile/BCB Added Files: JvSearchFileMainFormU.cpp JvSearchFileMainFormU.dfm JvSearchFileMainFormU.h JvSearchFileProj.bpr JvSearchFileProj.cpp JvSearchFileProj.res Log Message: Issue 3058: conversion from Korecek --- NEW FILE: JvSearchFileMainFormU.h --- //--------------------------------------------------------------------------- #ifndef JvSearchFileMainFormUH #define JvSearchFileMainFormUH //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include "JvAppIniStorage.hpp" #include "JvAppStorage.hpp" #include "JvComponent.hpp" #include "JvExMask.hpp" #include "JvFormPlacement.hpp" #include "JvSearchFiles.hpp" #include "JvToolEdit.hpp" #include <ComCtrls.hpp> #include <Mask.hpp> //--------------------------------------------------------------------------- static bool ContainsText(const AnsiString Filename,AnsiString AText); class TJvSearchFileMainForm : public TForm { __published: // IDE-managed Components TGroupBox *GroupBox2; TRichEdit *reFoundFiles; TGroupBox *GroupBox1; TLabel *Label1; TLabel *Label2; TJvDirectoryEdit *JvDirectoryBox1; TCheckBox *chkRecursive; TEdit *edFileMask; TComboBox *cbContainText; TRadioButton *rbInclude; TRadioButton *rbExclude; TCheckBox *chkClearList; TCheckBox *chkNoDupes; TButton *btnSearch; TButton *btnCancel; TStatusBar *StatusBar1; TJvFormStorage *JvFormStorage1; TJvAppIniFileStorage *JvAppIniFileStorage1; TJvSearchFiles *JvSearchFile1; void __fastcall OptionsChange(TObject * Sender); void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose); void __fastcall btnCancelClick(TObject *Sender); void __fastcall btnSearchClick(TObject *Sender); void __fastcall JvSearchFile1BeginScanDir(TObject *Sender, const AnsiString AName); void __fastcall JvSearchFile1FindFile(TObject *Sender, const AnsiString AName); void __fastcall JvSearchFile1Progress(TObject *Sender); private: void AddSearchTextToComboBox(void); // User declarations public: // User declarations __fastcall TJvSearchFileMainForm(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TJvSearchFileMainForm *JvSearchFileMainForm; //--------------------------------------------------------------------------- #endif --- NEW FILE: JvSearchFileProj.cpp --- //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- USEFORM("JvSearchFileMainFormU.cpp", JvSearchFileMainForm); //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TJvSearchFileMainForm), &JvSearchFileMainForm); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } catch (...) { try { throw Exception(""); } catch (Exception &exception) { Application->ShowException(&exception); } } return 0; } //--------------------------------------------------------------------------- --- NEW FILE: JvSearchFileMainFormU.cpp --- //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "JvSearchFileMainFormU.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "JvAppIniStorage" #pragma link "JvAppStorage" #pragma link "JvComponent" #pragma link "JvExMask" #pragma link "JvFormPlacement" #pragma link "JvSearchFiles" #pragma link "JvToolEdit" #pragma resource "*.dfm" TJvSearchFileMainForm *JvSearchFileMainForm; //--------------------------------------------------------------------------- __fastcall TJvSearchFileMainForm::TJvSearchFileMainForm(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- static bool ContainsText(const AnsiString Filename,AnsiString AText) { TMemoryStream *S; AnsiString tmp; bool flResult; flResult = false; S = new TMemoryStream(); try { S->LoadFromFile(Filename); if( S->Memory != NULL) { tmp = (PChar)S->Memory; tmp = AnsiLowerCase(tmp); flResult = (tmp.Pos(AnsiLowerCase(AText)) > 0); } } __finally { delete S; } return flResult; } //--------------------------------------------------------------------------- void __fastcall TJvSearchFileMainForm::OptionsChange(TObject * Sender) { // rbInclude->Enabled = (cbContainText->Text != ""); // rbExclude->Enabled = rbInclude->Enabled; StatusBar1->Panels->Items[0]->Text = "Ready"; StatusBar1->Update(); } //--------------------------------------------------------------------------- void __fastcall TJvSearchFileMainForm::FormCloseQuery(TObject *Sender, bool &CanClose) { btnCancel->Click(); } //--------------------------------------------------------------------------- void TJvSearchFileMainForm::AddSearchTextToComboBox(void) { if( (cbContainText->Text != "") && (cbContainText->Items->IndexOf(cbContainText->Text) < 0) /* is Text already in the ComboBox */ ) { cbContainText->Items->Add(cbContainText->Text); } } //--------------------------------------------------------------------------- void __fastcall TJvSearchFileMainForm::btnCancelClick(TObject *Sender){ JvSearchFile1->Abort(); btnCancel->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TJvSearchFileMainForm::btnSearchClick(TObject *Sender) { btnSearch->Enabled = false; btnCancel->Enabled = true; Screen->Cursor = crHourGlass; try { if( chkClearList->Checked ) { reFoundFiles->Lines->Clear(); } AddSearchTextToComboBox(); JvSearchFile1->Files->Clear(); JvSearchFile1->Directories->Clear(); JvSearchFile1->FileParams->FileMasks->Text = edFileMask->Text; if( chkRecursive->Checked ) { JvSearchFile1->DirOption = doIncludeSubDirs; } else { JvSearchFile1->DirOption = doExcludeSubDirs; } // don't store file and folder names - we do that in the memo JvSearchFile1->Options = TJvSearchOptions(JvSearchFile1->Options) << soOwnerData; JvSearchFile1->RootDirectory = JvDirectoryBox1->EditText; JvSearchFile1->Search(); } __finally { StatusBar1->Panels->Items[0]->Text = Format("(%d matching items found)",ARRAYOFCONST( (reFoundFiles->Lines->Count) ) ); btnSearch->Enabled = true; btnCancel->Enabled = false; Screen->Cursor = crDefault; } } //--------------------------------------------------------------------------- void __fastcall TJvSearchFileMainForm::JvSearchFile1BeginScanDir( TObject *Sender, const AnsiString AName) { #if __BORLANDC__ < 0x0560 StatusBar1->Panels->Items[0]->Text = Format("Searching in %s...",ARRAYOFCONST( (Jvjclutils::ExcludeTrailingPathDelimiter(AName)) ) ); #else StatusBar1->Panels->Items[0]->Text = Format("Searching in %s...",ARRAYOFCONST( (ExcludeTrailingPathDelimiter(AName)) ) ); #endif StatusBar1->Update(); } //--------------------------------------------------------------------------- void __fastcall TJvSearchFileMainForm::JvSearchFile1FindFile( TObject *Sender, const AnsiString AName) { StatusBar1->Panels->Items[0]->Text = Format("Searching in %s...",ARRAYOFCONST( (AName) ) ); StatusBar1->Update(); if(cbContainText->Text != "") { if( rbInclude->Checked != ContainsText(AName,cbContainText->Text) ) { return ; } } if( !chkNoDupes->Checked || (reFoundFiles->Lines->IndexOf(AName) < 0) ) { reFoundFiles->Lines->Add(AName); } } //--------------------------------------------------------------------------- void __fastcall TJvSearchFileMainForm::JvSearchFile1Progress( TObject *Sender) { Application->ProcessMessages(); } //--------------------------------------------------------------------------- --- NEW FILE: JvSearchFileProj.res --- (This appears to be a binary file; contents omitted.) --- NEW FILE: JvSearchFileProj.bpr --- <?xml version='1.0' encoding='utf-8' ?> <!-- C++Builder XML Project --> <PROJECT> <MACROS> <VERSION value="BCB.06.00"/> <PROJECT value="..\..\..\bin\JvSearchFileProj.exe"/> <OBJFILES value="..\..\..\dcu\JvSearchFileProj.obj ..\..\..\dcu\JvSearchFileMainFormU.obj"/> <RESFILES value="JvSearchFileProj.res"/> <IDLFILES value=""/> <IDLGENFILES value=""/> <DEFFILE value=""/> <RESDEPEN value="$(RESFILES) JvSearchFileMainFormU.dfm"/> <LIBFILES value=""/> <LIBRARIES value=""/> <SPARELIBS value=""/> <PACKAGES value=""/> <PATHCPP value=".;"/> <PATHPAS value=".;"/> <PATHRC value=".;"/> <PATHASM value=".;"/> <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> <USERDEFINES value="_DEBUG"/> <SYSDEFINES value="NO_STRICT"/> <MAINSOURCE value="JvSearchFileProj.cpp"/> <INCLUDEPATH value="$(BCB)\include;$(BCB)\include\vcl;$(INCLUDEPATH)"/> <LIBPATH value="$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(RESPATH);..\..\..\Resources"/> <WARNINGS value="-w-par"/> <OTHERFILES value=""/> </MACROS> <OPTIONS> <IDLCFLAGS value="-I$(BCB)\include -I$(BCB)\include\vcl -I$(INCLUDEPATH) -src_suffix cpp -D_DEBUG -boa"/> <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tW -tWM"/> <PFLAGS value="-N2..\..\..\dcu -N0..\..\..\dcu -$YD -$W -$O- -$A8 -v -JPHNE -M"/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> <LFLAGS value="-I..\..\..\dcu -D"" -aa -Tpe -x -Gn -v"/> <OTHERFILES value=""/> </OPTIONS> <LINKER> <ALLOBJ value="c0w32.obj sysinit.obj $(OBJFILES)"/> <ALLRES value="$(RESFILES)"/> <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/> <OTHERFILES value=""/> </LINKER> <FILELIST> <FILE FILENAME="JvSearchFileProj.res" FORMNAME="" UNITNAME="JvSearchFileProj.res" CONTAINERID="ResTool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="JvSearchFileProj.cpp" FORMNAME="" UNITNAME="JvSearchFileProj" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="JvSearchFileMainFormU.cpp" FORMNAME="JvSearchFileMainForm" UNITNAME="JvSearchFileMainFormU" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> </FILELIST> <BUILDTOOLS> </BUILDTOOLS> <IDEOPTIONS> </IDEOPTIONS> </PROJECT> --- NEW FILE: JvSearchFileMainFormU.dfm --- object JvSearchFileMainForm: TJvSearchFileMainForm Left = 320 Top = 178 Width = 371 Height = 345 Caption = 'JvSearchFiles Demo' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False OnCloseQuery = FormCloseQuery PixelsPerInch = 96 TextHeight = 13 object GroupBox2: TGroupBox Left = 4 Top = 190 Width = 353 Height = 105 Anchors = [akLeft, akTop, akRight, akBottom] TabOrder = 0 object reFoundFiles: TRichEdit Left = 6 Top = 12 Width = 341 Height = 87 Anchors = [akLeft, akTop, akRight, akBottom] PlainText = True ScrollBars = ssBoth TabOrder = 0 WordWrap = False end end object GroupBox1: TGroupBox Left = 4 Top = 6 Width = 353 Height = 139 Anchors = [akLeft, akTop, akRight] TabOrder = 1 object Label1: TLabel Left = 10 Top = 16 Width = 45 Height = 13 Caption = '&Directory:' FocusControl = JvDirectoryBox1 end object Label2: TLabel Left = 8 Top = 44 Width = 47 Height = 13 Caption = '&File mask:' FocusControl = edFileMask end object JvDirectoryBox1: TJvDirectoryEdit Left = 62 Top = 14 Width = 281 Height = 21 DialogKind = dkWin32 Anchors = [akLeft, akTop, akRight] TabOrder = 0 Text = 'C:\' OnClick = OptionsChange end object chkRecursive: TCheckBox Left = 72 Top = 64 Width = 97 Height = 17 Caption = '&Recursive' Checked = True State = cbChecked TabOrder = 2 OnClick = OptionsChange end object edFileMask: TEdit Left = 62 Top = 40 Width = 281 Height = 21 Anchors = [akLeft, akTop, akRight] TabOrder = 1 Text = '*.*' OnChange = OptionsChange end object cbContainText: TComboBox Left = 24 Top = 108 Width = 319 Height = 21 Anchors = [akLeft, akTop, akRight] ItemHeight = 13 TabOrder = 5 OnChange = OptionsChange end object rbInclude: TRadioButton Left = 6 Top = 87 Width = 79 Height = 17 Caption = '&With text:' Checked = True TabOrder = 3 TabStop = True OnClick = OptionsChange end object rbExclude: TRadioButton Left = 132 Top = 87 Width = 113 Height = 17 Caption = 'With&out text:' TabOrder = 4 OnClick = OptionsChange end end object chkClearList: TCheckBox Left = 24 Top = 152 Width = 134 Height = 17 Caption = 'C&lear list before search' Checked = True State = cbChecked TabOrder = 2 end object chkNoDupes: TCheckBox Left = 24 Top = 171 Width = 134 Height = 17 Caption = 'Skip d&uplicates' Checked = True State = cbChecked TabOrder = 3 end object btnSearch: TButton Left = 190 Top = 160 Width = 75 Height = 25 Anchors = [akTop, akRight] Caption = '&Search' Default = True ModalResult = 1 TabOrder = 4 OnClick = btnSearchClick end object btnCancel: TButton Left = 276 Top = 160 Width = 75 Height = 25 Anchors = [akTop, akRight] Cancel = True Caption = '&Cancel' Enabled = False ModalResult = 2 TabOrder = 5 OnClick = btnCancelClick end object StatusBar1: TStatusBar Left = 0 Top = 299 Width = 363 Height = 19 Panels = < item Text = 'Ready' Width = 50 end> SimplePanel = False end object JvFormStorage1: TJvFormStorage AppStorage = JvAppIniFileStorage1 AppStoragePath = '%FORM_NAME%\' StoredProps.Strings = ( 'edFileMask.Text' 'chkRecursive.Checked' 'JvDirectoryBox1.Text' 'cbContainText.Items' 'cbContainText.Text' 'chkClearList.Checked' 'chkNoDupes.Checked' 'rbInclude.Checked' 'rbExclude.Checked') StoredValues = <> Left = 154 Top = 72 end object JvAppIniFileStorage1: TJvAppIniFileStorage StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' FileName = 'JvSearchFilesProj.ini' DefaultSection = 'Settings' SubStorages = <> Left = 192 Top = 72 end object JvSearchFile1: TJvSearchFiles DirOption = doExcludeInvalidDirs RootDirectory = '(Directory)' FileParams.SearchTypes = [stFileMask] OnBeginScanDir = JvSearchFile1BeginScanDir OnFindFile = JvSearchFile1FindFile OnProgress = JvSearchFile1Progress Left = 234 Top = 72 end end |