Főmenüben nyitott és mentse a fájlt dialógusok Delphi

Folytassuk a programozási menü Megnyitás, Mentés, Mentés másként ..., Kilépés.

Mi szükség van egy közös fFilePath egy string változót minden eljárásra, amely tárolja a teljes elérési utat nyitott fájlt. Bemutatjuk azt a szakaszt előtt var kulcsszó végrehajtása az alábbiak szerint:

Főmenüben nyitott és mentse a fájlt dialógusok Delphi

Ez leírási módja lehetővé teszi, csak „reset” a változó.

Most leírjuk az eljárást megnyitni egy fájlt a fájl kiválasztó párbeszédablak. Ehhez az űrlapot tervező módban, kattintson a File-Open

Főmenüben nyitott és mentse a fájlt dialógusok Delphi

Meg kell elhelyezni a következő kódot:

Funkció Execute párbeszéd fOpenDialog megnyit egy fájlválasztó ablakban. Ha kiválaszt egy fájlt, és nyomja meg a Megnyitás gombot. függvény értéke igaz. Ha a Mégse gombra kattint. hamis. Note párbeszéd hívják az if, azaz ellenőrizzük az eredményt az igazság Execute.Esli eredmény, továbbra is a fájl megnyitása, ha egyébként nem történik semmi. Ha ezt nem teszi meg csekket, a párbeszéd működik, ha egy fájl van kiválasztva, de ha a felhasználó nem hajlandó megnyitni a fájlt, és a Mégse gombra kattint, a hiba jelenik meg, mint txt.Lines.LoadFromFile megpróbál megnyitni egy fájlt, amely nincs kijelölve.

Ebben az eljárásban szánunk változó fFilePath, a teljes elérési utat a kiválasztott fájltípus «x: \ mytxt \ txtFile.txt», amely visszaadja a fájlnév párbeszéd funkció fOpenDialog és terhelési szöveget txt.

Ez minden nyitott fájlt.

Ezután válassza ki a „Mentés másként ...”.

Csak kattintson a tételt, és TForm1.fSaveAsClick megállapított eljárást ír kód:

ha fFilePath = '' majd fsavedialog.FileName: = 'Új Document.txt'
mást fsavedialog.FileName: = fFilePath;

ha extractfileext (fSaveDialog.FileName) = '', akkor
fFilePath: = fSaveDialog.FileName + 'TXT.'
mást fFilePath: = fSaveDialog.FileName;

Ez az eljárás sokkal bonyolultabb. Magyarázza munkája:

Első uslovieIF - lényegében egy dekoráció, ellenőrzi fFilePath változó, és ha üres, akkor adja meg a fájl nevét mező megjeleníti a nevét, az alapértelmezett „Új Document.txt”. PeremennayafFilePath üres csak akkor, ha a dokumentum létrehozásához, és ne nyissa meg szerkesztésre. Ha fFilePath változó nem üres, akkor az megjelenik a fájl nevét indult.

Második uslovieIF - futtathat Mentés párbeszédablak.

A harmadik feltétel IF - ellenőrzi, hogy a megadott fájlnév kiterjesztését, ha megadott egy fájlnevet annak kiterjesztését mellékelt, a neve «.txt». extractfileext funkció letölti a teljes nevét, a fájl kiterjesztését. Például a fájlt „My bloknot.txt”, akkor a függvény annak kiterjesztését „txt”. Ha nem ezt a vizsgálatot, és csatlakozott a terjeszkedés, a fájl jön létre anélkül, hogy ez a kiterjesztés, és a rendszer nem fog felismerni. De ha csak a csatlakozási terjeszkedés és ugyanaz a fájl neve lesz „My bloknot.txt”, akkor a neve bekerül kiterjesztése „txt”, az eredmény megkapjuk a fájlt „My bloknot.txt.txt”.

Készítsen TForm1.fSaveClick fenti eljárást folyamatot, és írni a következő kódot:

azaz ellenőrizzük a változó fFilePath. ha üres, akkor a hívás eljárás menüpont „Save as ...» - fSaveAs. Sőt, mi programozottan „push” a menüpont a „Mentés másként ...”. Ha a fájl megnyitását, egyszerűen mentse a változtatásokat a fájlt.

És a „kilépés” az utolsó menüpont.

A csapat ezt a tételt az egyszerű és az egy sor:

felhasználások
Ablakok, üzenetek, SysUtils, Változatok, osztályok, grafika, vezérlők, Forms,
Dialógusok, StdCtrls, menük;

típus
TForm1 = osztály (TForm)
txt: TMemo;
MainMenu1: TMainMenu;
N1: TMenuItem;
fopen: TMenuItem;
fSave: TMenuItem;
fSaveAs: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
fOpenDialog: TOpenDialog;
fSaveDialog: TSaveDialog;
eljárás fOpenClick (Sender: TObject);
eljárás fSaveAsClick (Sender: TObject);
eljárás fSaveClick (Sender: TObject);
eljárás N3Click (Sender: TObject);

eljárás TForm1.fSaveAsClick (Sender: TObject);
kezdődik
// ha fFilePath üres, az alapértelmezett kimeneti neve
ha fFilePath = '' majd fsavedialog.FileName: = 'Új Document.txt'
// ha nem üres fFilePath
mást fsavedialog.FileName: = fFilePath;

// ellenőrzi, hogy van rasshireneie adott fájl
// ha nem, kérje .txt
ha extractfileext (fSaveDialog.FileName) = '', akkor
fFilePath: = fSaveDialog.FileName + 'TXT.'
// Ha van egy tartalék
mást fFilePath: = fSaveDialog.FileName;

eljárás TForm1.fSaveClick (Sender: TObject);
kezdődik
// ha fFilePath üres megnyitja a Mentés másként párbeszédpanel
ha fFilePath = '' majd fSaveAs.Click
// egyébként csak ne nyitott fájlt
mást txt.Lines.SaveToFile (fFilePath);
végén;

PS Tehát, hogy ha kinyitja a szöveget, görgetősáv jelenik meg obektaMemo (txt) meg kell határoznia svoystvoScrollBars = ssBoth.

Főmenüben nyitott és mentse a fájlt dialógusok Delphi