Meniul principal, dialoguri pentru deschiderea și salvarea fișierelor în Delphi

Să începem programarea elementelor din meniu Deschidere, Salvare, Salvare ca ..., Ieșire.

Avem nevoie de o variabilă generală fFilePath de tip String pentru toate procedurile care vor stoca calea completă la fișierul deschis. Să o descriem în secțiunea var înainte de implementarea cuvântului cheie după cum urmează:

Meniul principal, dialoguri pentru deschiderea și salvarea fișierelor în Delphi

Această metodă de descriere ne permite să "zero" imediat variabila noastră.

Acum, descrieți procedura de deschidere a unui fișier utilizând dialogul de selectare a fișierelor. Pentru aceasta, pe formularul din modul Design, faceți clic pe File-Open.

Meniul principal, dialoguri pentru deschiderea și salvarea fișierelor în Delphi

Este necesar să introduceți în el următorul cod:

Funcția Execute a dialogului fOpenDialog deschide fereastra de selectare a fișierelor. Când selectați un fișier și faceți clic pe Deschidere. funcția returnează True. dacă este apăsat butonul Anulare. apoi falsă. Rețineți că dialogul este apelat folosind condiția dacă, adică, verificăm rezultatul executării execuției. Dacă rezultatul este adevărat, vom continua să deschidem fișierul, dacă altfel nu se întâmplă nimic. Dacă nu faceți această verificare, dialogul va funcționa atunci când selectați un fișier, dar dacă utilizatorul refuză să deschidă fișierul și dă clic pe Anulare, apare o eroare. txt.Lines.LoadFromFile va încerca să deschidă un fișier care nu este selectat.

În cadrul acestei proceduri, vom atribui fFilePath variabilă, calea completă la tipul de fișier selectat «x: \ mytxt \ txtFile.txt», care returnează funcția de dialog FileName fOpenDialog și textul de încărcare pentru a txt.

Acesta este tot dosarul de deschidere.

În continuare, elementul "Salvați ca ...".

De asemenea, faceți clic pe acest element și scrieți codul în procedura creată TForm1.fSaveAsClick:

dacă fFilePath = '' atunci fsavedialog.FileName: = 'Nou document.txt'
altfel fsavedialog.FileName: = fFilePath;

dacă extractfileext (fSaveDialog.FileName) = '' atunci
fFilePath: = fSaveDialog.FileName + '. txt'
altfel fFilePath: = fSaveDialog.FileName;

Această procedură este mai complicată. Îți voi explica lucrul:

În primul rând uslovieIF - este în esență un decor, verifică fFilePath variabilă și dacă acesta este gol, apoi specificați câmpul nume de fișier afișează numele implicit „New Document.txt“. Variabila fFilePath este goală doar dacă vom crea documentul și nu îl vom deschide pentru editare. Dacă variabila fFilePath nu este goală, atunci numele fișierului care a fost deschis este afișat.

A doua condiție IF - rulează dialogul de salvare.

A treia condiție IF - verifică dacă extensia de nume de fișier introdus, dacă ați introdus un nume de fișier, fără extinderea acestuia, anexat la numele «.txt». Funcția extractfileext extrage extensia de la numele complet al fișierului. De exemplu, fișierul "My Notepad.txt", funcția va returna extensia "txt". Dacă nu faci acest test și aderarea la extinderea, fișierul va fi creat fără această extensie, și în sistemul nu va recunoaște. Dar dacă numai aderarea la expansiune și același nume de fișier va fi „bloknot.txt meu“, extensia atunci numele va fi adăugat „txt“, rezultatul vom obține fișierul „bloknot.txt.txt meu“.

Creați procedura TForm1.fSaveClick în modul de mai sus și scrieți următorul cod:

și anume verificăm variabila fFilePath. dacă este gol, atunci sunăm procedura din elementul de meniu "Salvați ca ..." - fSaveAs. De fapt, programăm "faceți clic" pe elementul de meniu "Salvați ca ...". Dacă fișierul a fost deschis, salvați modificările în fișier.

Și ultimul element de meniu "Ieșire".

Comanda acestui element este simplă și unică:

utilizări
Ferestre, Mesaje, SysUtils, Variante, Clase, Grafica, Controale, Formulare,
Dialoguri, StdCtrls, Meniuri;

tip
TForm1 = clasa (TForm)
txt: TMemo;
MainMenu1: TMainMenu;
N1: TMenuItem;
fOpen: TMenuItem;
fSave: TMenuItem;
fSaveAs: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
fOpenDialog: TOpenDialog;
fSaveDialog: TSaveDialog;
procedura fOpenClick (expeditor: TObject);
procedura fSaveAsClick (expeditor: TObject);
procedura fSaveClick (expeditor: TObject);
procedura N3Click (expeditor: TObject);

procedura TForm1.fSaveAsClick (expeditor: TObject);
începe
// Dacă fFilePath este gol, imprimați numele implicit
dacă fFilePath = '' atunci fsavedialog.FileName: = 'Nou document.txt'
// dacă fFilePath nu este gol
altfel fsavedialog.FileName: = fFilePath;

// verificați dacă există o extensie pentru fișierul dat
// dacă nu, apoi setați .txt
dacă extractfileext (fSaveDialog.FileName) = '' atunci
fFilePath: = fSaveDialog.FileName + '. txt'
// dacă există, atunci plecați
altfel fFilePath: = fSaveDialog.FileName;

procedura TForm1.fSaveClick (expeditor: TObject);
începe
// dacă fFilePath este gol, apoi deschide dialogul de salvare
dacă fFilePath = '' atunci fSaveAs.Click
/ / altfel salvați doar fișierul deschis
altceva txt.Lines.SaveToFile (fFilePath);
se încheie;

PS Pentru a vă asigura că atunci când deschideți textul, apar barele de defilare pentru obiectul Memo (txt), trebuie să specificați proprietatea ScrollBars = ssBoth.

Meniul principal, dialoguri pentru deschiderea și salvarea fișierelor în Delphi