logo

.
Thursday 11th of March 2010    

Ankety

Jaké barvy editoru kódu používáte?
 

Přihlášení




Home Škola DELPHI 31. program - dialog otevření souboru(ů)
31. program - dialog otevření souboru(ů) Tisk Email
Hodnocení uživatelů: / 0
NejhoršíNejlepší 
Napsal uživatel Administrator   
Pondělí, 08 Únor 2010 07:08

 

Dialog pro otevření souboru OpenDialog najdete v záložce Dialogs. Hlavní jeho funkce je zobrazit standardní dialogové okno z Windows a uživateli pomoci s výběrem souboru. Ve vzorové aplikaci je znázorněno dvojí použití této komponenty.

OpenDialog vytvořen při návrhu programu

Pokud se pozorně podíváte na návrh aplikace zjistíte, že najdete pouze jeden dlgOtevrit. Má to tak být, ten se použivá v tlačítku pro otevření jednoho souboru.
procedure TMainForm.spbOtevritClick(Sender: TObject);
begin
  dlgOtevrit.InitialDir := ExtractFilePath (Application.ExeName);
  dlgOtevrit.FileName   := edtOtevrit.Text;  //ma prednost pred InitialDir

  If dlgOtevrit.Execute
    then edtOtevrit.Text := dlgOtevrit.FileName;
end;
Programový kod je velmi jednoduchý, proto se nejdříe musíme podívat na nastavení dlgOtevrit.
Prvním nastavení je filtr. Ten udává, které typy souborů je možné otevřít. Každý řádek v nastavení filtru odpovídá jedné položce v ScrollBoxu udávající typ souboru. Levá půlka obsahuje text, který uvidí uživatel, pravá půlka udává typ souborů.


Další změnou v nastavení byla vlastnost FilterIndex. V programu použita hodnota "4" odpovídá 4. řádku, tedy "projekty Delphi". Všechny ostatní hodnoty zůstali ve výchozím nastavení.

V programu se pak nastavují vlastnosti...
InitialDir - výchozí adresář se soubory
FileName - jméno souboru, které má přednostně otevřít. Tato položka má přednost před InitialDir.

Dále už pak bude jen dlgOtevrit spustit a počkat na jeho zavření. Pokud uživatel vybere soubor a zmáčkne tlačítko OK, bude funkce "Execute" vracet hodnotu TRUE, v opačném případě FALSE. Toho se využije k rozhodnutí, zda pracovat s dlgOtevrit, nebo ne. Vrátí-li Execute hodnotu true, použije se vlastnost FileName, ve které je jméno souboru vybraného uživatelem a zapíše se do TEdit (edtOtevrit).

OpenDialog vytvořen za běhu programu

Druhá půlka programu zajišťuje otevření více souborů a OpenDialog je vytvořen za běhu programu, tedy až po stisku tlačítka.
Nejdříve si ukážeme programový kod, pak si k němu řekneme co dělá.

procedure TMainForm.spbOtevritVicClick(Sender: TObject);
Var dlgOpen : TOpenDialog;
    i       : integer;
begin
  dlgOpen := TOpenDialog.Create(nil);  //vytvoření objektu
  dlgOpen.Filter := 'všechny soubor|*.*|obrázky|*.bmp *.jpg|textové soubory|*.txt';
  dlgOpen.FilterIndex := 2;  //2 = *.bmp
  dlgOpen.Options := [ofAllowMultiSelect];
  dlgOpen.InitialDir := 'c:\';
  If dlgOpen.Execute then begin
    lbxOtevritVic.Items.Clear;
    for i := 0 to dlgOpen.Files.Count-1
      do lbxOtevritVic.Items.Add (dlgOpen.Files[i]);
  end;
  FreeAndNil (dlgOpen);
end;

Nejdříve je potřeba nadeklarovat proměnou dlgOpen typu TOpenDialog a zkontrolovat, zda máte v sekci Uses unitu "Dialogs".
Proměnná dlgOpen je objektem, není to typ Integer, nebo string, který můžete hned používat, objekty je třeba nejdříve vytvořit. To provede první řádek. Dále se s dlgOpen pracuje uplně stejně jako s dlgOtevrit, který byl vytvořen při návrhu programu. Na konci užití dlgOpen je potřeba objekt zrušit z paměti, tedy uklidit po sobě. To zajišťuje funkce FreeAndNill, která objekt zruší a přiřadí mu hodnotu nil. První a poslední řádek je ukázkou práce s objekty, které jsou popsány v Škole Pascalu.

Otevření více souborů je možné pouze tehdy, pokud máte ve vlastnosti Options přítomnu hodnotu ofAllowMultiSelect. Pokud ne, budete moci vybrat pouze jeden soubor.
Seznam vybraných více souborů zajišťuje vlastnost Files, která je typu TStrings, pracuje se s ní jako s Items v ListBox. Smyčkou "for i :=" projdeme všechny soubory a přidáme je do lbxOtevritVic.

Všechny vlastnosti nastavované u dlgOpen je možné nastavit i v "Object Inspector".

Pokud máte chaos v druhé půlce programu, můžete ho obejít a vytvořit si dlgOpen při návrhu aplikace, nastavit vlastnost ofAllowMultiSelect v Options, nastavit filtr a přepsat obsluhu události spbOtevritVic podle otevreni jednoho souboru.

Dialogové okno pro výběr složky je popsán v tipu Složka - dialogové okno pro výběr složky

Zdrojové kody a zkompilovaný program stahujte zde.

Aktualizováno Středa, 17 Únor 2010 14:04
 

Přidejte svůj komentář

Vaše jméno:
Titulek:
Komentář:
bottom

top

kolik vás je ?

Právě připojeni - hostů: 3 

Provoz stránek

návštěv dnes: 13
návštěv včera: 39
návštěv za měsíc: 417
návštěv celkem: 6852

Translations


Vyberte si vzhled


bottom

Založeno na Joomla!. Designed by: Free Joomla 1.5 Template, dns. Valid XHTML and CSS.