Jak používat Delphi k vytvoření vlastního Průzkumníka Windows

Průzkumník Windows je to, co používáte v operačním systému Windows k procházení souborů a složek. S Delphi můžete vytvořit podobnou strukturu, aby byl stejný obsah naplněn v uživatelském rozhraní vašeho programu.

V Delphi se používají běžná dialogová okna otevřít a uložit soubor v aplikaci. Pokud chcete použít přizpůsobené správce souborů a dialogy pro procházení adresářů, musíte se vypořádat s komponentami Delphi systému souborů.

Skupina palet Win 3.1 VCL obsahuje několik komponent, které vám umožní vytvořit si vlastní dialogové okno „Otevřít soubor“ nebo „Uložit soubor“: TFileListBox, TDirectoryListBox, TDriveComboBox, a TFilterComboBox.

Navigace v souborech

Komponenty systému souborů nám umožňují vybrat jednotku, zobrazit hierarchickou strukturu adresářů disku a vidět názvy souborů v daném adresáři. Všechny součásti systému souborů jsou navrženy tak, aby spolupracovaly.

Například váš kód zkontroluje, co uživatel udělal, řekněme, DriveComboBox a poté předá tyto informace adresáři DirectoryListBox. Změny v adresáři DirectoryListBox jsou poté předány do souboru FileListBox, ve kterém si uživatel může vybrat potřebné soubory.

instagram viewer

Návrh formuláře dialogu

Začněte nový Aplikace Delphi a vyberte kartu Win 3.1 na Paleta komponent. Poté proveďte následující:

  • Umístěte jednu komponentu TFileListBox, TDirectoryListBox, TDriveComboBox a TFilterComboBox do formuláře, přičemž si ponecháte všechna výchozí jména
  • Přidejte jeden TEdit (nazvaný "FileNameEdit") a jeden TLabel (nazývejte to „DirLabel“).
  • Uveďte několik štítků s titulky, například „Název souboru“, „Adresář“, „Seznam souborů typu“ a „Jednotky“.

Chcete-li zobrazit aktuálně vybranou cestu jako řetězec v titulku komponent DirLabel, přiřaďte název štítku adresáři DirectoryListBox Vlastnost DirLabel.

Pokud chcete zobrazit vybraný název souboru v EditBoxu (FileNameEdit), musíte přiřadit Jméno objektu Edit (FileNameEdit) k FileListBox's Vlastnost FileEdit.

Více řádků kódu

Pokud máte ve formuláři všechny součásti systému souborů, stačí nastavit DirectoryListBox. Vlastnost jednotky a FileListBox. Vlastnost Directory, aby komponenty mohly komunikovat a ukázat, co chce uživatel vidět.

Například když uživatel vybere novou jednotku, Delphi aktivuje DriveComboBox OnChange obsluha události. Nechte to vypadat takto:

 procedura TForm1.DriveComboBox1Change (Sender: TObject);
beginDirectoryListBox1.Drive: = DriveComboBox1.Drive;
konec;

Tento kód změní zobrazení v DirectoryListBox aktivací jeho OnChange Obsluha události:

 procedura TForm1.DirectoryListBox1Change (Sender: TObject);
beginFileListBox1.Directory: = DirectoryListBox1.Directory;
konec;

Chcete-li vidět, jaký soubor uživatel vybral, musíte použít OnDblClick událost FileListBox:

 procedura TForm1.FileListBox1DblClick (Sender: TObject);
beginShowmessage ('Selected:' + FileListBox1.FileName);
konec;

Nezapomeňte, že konvencí Windows je, že dvojitým kliknutím vyberete soubor, nikoli jediným kliknutím. To je důležité, když pracujete s FileListBoxem, protože použití klávesy se šipkou k pohybu v FileListBoxu by vyvolalo jakýkoli popisovač OnClick, který jste napsali.

Filtrování displeje

Použijte FilterComboBox k řízení typu souborů, které jsou zobrazeny v FileListBoxu. Po nastavení vlastnosti FileListbo FilterComboBox na název FileListBox nastavte vlastnost Filter na typy souborů, které chcete zobrazit.

Zde je ukázkový filtr:

 FilterComboBox1.Filter: = 'Všechny soubory (*. *) | *. * | Soubory projektu (* .dpr) | * .dpr | Pascalové jednotky (* .pas) | * .pas ';

Tipy a triky

Nastavení adresáře DirectoryListBox. Vlastnost jednotky a FileListBox. Vlastnost adresáře (v dříve napsaných obslužných rutinách události OnChange) za běhu může být také provedena v době návrhu. Tento druh připojení můžete dosáhnout v době návrhu nastavením následujících vlastností (z Inspektoru objektů):

DriveComboBox1.DirList: = DirectoryListBox1
DirectoryListBox1.FileList: = FileListBox1

Uživatelé mohou vybrat více souborů v FileListBoxu, pokud je jeho vlastnost MultiSelect pravdivá. Následující kód ukazuje, jak vytvořit seznam více výběrů v FileListBoxu a ukázat jej v SimpleListBoxu (některé "běžné" ovládací prvky seznamu).

 var k: celé číslo; ...
s FileListBox1 dělat
pokud SelCount> 0 potom
pro k: = 0 k položkám. Počet-1 ano
pokud je vybrána [k], pak
SimpleListBox. Položky. Přidat (položky [k]);

Chcete-li zobrazit úplné názvy cest, které nejsou zkráceny elipsou, nepřiřazujte název objektu Label vlastnost DirLabel DirectoryListBox. Místo toho vložte popisek do formuláře a nastavte jeho vlastnost titulek v události OnChange DirectoryListBox na DirectoryListBox. Vlastnost adresáře.