Vytvoření poznámkového bloku Delphi: Otevřete a uložte

Při práci s různými aplikacemi Windows a Windows Delphi, jsme si zvykli pracovat s jedním ze standardů dialogová okna pro otevření a uložení souboru, nalezení a nahrazení textu, tisk, výběr písem nebo nastavení barev.

V tomto článku prozkoumáme některé nejdůležitější vlastnosti a metody těchto dialogů se zvláštním zaměřením otevřeno a Uložit dialogová okna.

Společná dialogová okna se nacházejí na kartě Dialogy v paletě Komponenty. Tyto součásti využívají standardní dialogová okna Windows (umístěná v DLL v adresáři \ Windows \ System). Chcete-li použít společné dialogové okno, musíme do formuláře umístit příslušnou komponentu (komponenty). Společné komponenty dialogového okna jsou nevizuální (nemají vizuální rozhraní návrhu a času), a proto jsou uživateli za běhu neviditelné.

TOpenDialog a TSaveDialog

Dialogová okna Otevřít a Uložit soubor mají několik společných vlastností. File Open se obvykle používá pro výběr a otevírání souborů. Dialogové okno Uložit soubor (také používané jako dialogové okno Uložit jako) se používá při získávání názvu souboru od uživatele za účelem uložení souboru. Některé z důležitých vlastností TOpenDialogu a TSaveDialogu jsou:

instagram viewer

  • Možnosti vlastnosti jsou velmi důležité při určování konečného vzhledu a pocitu krabice. Například řádek kódu jako:
    s OpenDialog1 dělatMožnosti: = Možnosti + [ofAllowMultiSelect, ofFileMustExist];
    zachová již nastavené možnosti a umožní uživatelům vybrat v dialogu více než jeden soubor a vygenerovat chybovou zprávu, pokud se uživatel pokusí vybrat neexistující soubor.
  • InitialDir Vlastnost se používá k určení adresáře, který bude použit jako počáteční adresář při zobrazení dialogového okna souboru. Následující kód zajistí, že počáteční adresář v dialogovém okně Otevřít je spouštěcí adresář aplikací.
    SaveDialog1.InitialDir: = ExtractFilePath (Aplikace. ExeName);
  • Filtr Vlastnost obsahuje seznam typů souborů, ze kterých si může uživatel vybrat. Když uživatel vybere typ souboru ze seznamu, zobrazí se v dialogu pouze soubory vybraného typu. Filtr lze snadno nastavit v době návrhu pomocí dialogového okna Editor filtru.
  • Chcete-li vytvořit masky souborů v programovém kódu, přiřaďte hodnotu vlastnosti Filtr, která se skládá z popisu a masky oddělené znakem svislého pruhu (potrubí). Takhle:
    OpenDialog1.Filter: = 'Textové soubory (* .txt) | * .txt | Všechny soubory (*. *) | *. * ';
  • Název souboru vlastnictví. Jakmile uživatel v dialogovém okně klepne na tlačítko OK, bude tato vlastnost obsahovat úplnou cestu a název souboru vybraného souboru.

Vykonat

Abychom skutečně vytvořili a zobrazili společné dialogové okno, musíme zpracovat Vykonat metoda konkrétního dialogového okna za běhu. S výjimkou TFindDialogu a TReplaceDialogu se všechna dialogová okna zobrazují modálně.

Všechna běžná dialogová okna nám umožňují určit, zda uživatel klepne na tlačítko Storno (nebo stiskne ESC). Protože metoda Execute vrací True, pokud uživatel klikl na tlačítko OK, musíme zachytit kliknutí na tlačítko Cancel, abychom se ujistili, že daný kód není spuštěn.

-li OpenDialog1.Execute pak
ShowMessage (OpenDialog1.FileName);

Tento kód zobrazí dialogové okno Otevřít soubor a zobrazí vybraný název souboru po úspěšném volání k provedení metody (když uživatel klepne na Otevřít).

Poznámka: Execute vrátí True, pokud uživatel klikl na tlačítko OK, dvakrát kliknul na název souboru (v případě dialogů se soubory) nebo stiskl Enter na klávesnici. Execute vrátí False, pokud uživatel kliknul na tlačítko Storno, stiskl klávesu Esc, zavřel dialogové okno tlačítkem pro zavření systému nebo kombinací kláves Alt-F4.

Z kódu

Abychom mohli pracovat s otevřeným dialogem (nebo jakýmkoli jiným) za běhu, aniž bychom do formuláře umístili komponentu OpenDialog, můžeme použít následující kód:

postup TForm1.btnFromCodeClick (Sender: TObject); var OpenDlg: TOpenDialog; začít OpenDlg: = TOpenDialog. Vytvořit (vlastní); {nastavte možnosti zde ...}-li OpenDlg. Vykonat pakzačít
{kód udělat něco tady}
konec; OpenDlg. Volný, uvolnit; konec;

Poznámka: Před voláním Execute můžeme (musíme) nastavit libovolnou z vlastností komponenty OpenDialog.

MyNotepad

Nakonec je čas udělat nějaké skutečné kódování. Celá myšlenka tohoto článku (a několik dalších, které mají přijít) je vytvořit jednoduchou aplikaci MyNotepad - samostatný systém Windows, jako je aplikace Notepad.
V tomto článku jsme představili dialogová okna Otevřít a Uložit, takže se na ně podíváme v akci.

Kroky k vytvoření uživatelského rozhraní MyNotepad:
. Spusťte Delphi a vyberte File-New Application.
. Umístěte do formuláře jedno Memo, OpenDialog a SaveDialog dvě tlačítka.
. Přejmenujte Button1 na btnOpen, Button2 na btnSave.

Kódování

1. Pomocí Inspektoru objektů přiřaďte události FormCreate následující kód:

postup TForm1.FormCreate (Sender: TObject); začíts OpenDialog1 dělatzačít
Možnosti: = Možnosti + [ofPathMustExist, ofFileMustExist]; InitialDir: = ExtractFilePath (Aplikace. ExeName); Filtr: = 'Textové soubory (* .txt) | * .txt'; konec; s SaveDialog1 dělatzačít
InitialDir: = ExtractFilePath (Aplikace. ExeName); Filtr: = 'Textové soubory (* .txt) | * .txt'; konec; Memo1.ScrollBars: = ssBoth; konec;

Tento kód nastavuje některé vlastnosti dialogového okna Otevřít, jak je uvedeno na začátku článku.

2. Přidejte tento kód pro událost Onclick tlačítek btnOpen a btnSave:

postup TForm1.btnOpenClick (Sender: TObject); začít-li OpenDialog1.Execute pakzačít
Form1.Caption: = OpenDialog1.FileName; Memo1.Lines. LoadFromFile. (OpenDialog1.FileName); Memo1.SelStart: = 0; konec; konec;
postup TForm1.btnSaveClick (Sender: TObject); začít
SaveDialog1.FileName: = Form1.Caption; -li SaveDialog1.Execute pakzačít
Memo1.Lines. SaveToFile. (SaveDialog1.FileName + '.txt'); Form1.Caption: = SaveDialog1.FileName; konec; konec;

Spusťte svůj projekt. Tomu nemůžete uvěřit; soubory se otevírají a ukládají stejně jako u „skutečného“ Poznámkového bloku.

Závěrečná slova

A je to. Nyní máme svůj vlastní „malý“ Poznámkový blok.

instagram story viewer