Dok radite s raznim Windows aplikacijama i Delphi, navikli smo raditi s jednim od standardnih dijaloškim okvirima za otvaranje i spremanje datoteke, pronalaženje i zamjenu teksta, ispis, odabir fontova ili postavljanje boja.
U ovom ćemo članku istražiti neka od najvažnijih svojstava i metoda tih dijaloga s posebnim naglaskom na Otvoren i Uštedjeti dijaloškim okvirima.
Uobičajeni dijaloški okviri nalaze se na kartici Dijalozi na paleti komponenata. Te komponente koriste prednosti standardnih Windows dijaloških okvira (koji se nalaze u DLL-u u vašem \ Windows \ System direktoriju). Da bismo koristili zajednički dijaloški okvir, na obrazac moramo staviti odgovarajuću komponentu. Komponente uobičajenog dijaloškog okvira su nevizualne (nemaju vizualno sučelje i vremensko oblikovanje) i zato su korisniku nevidljive za vrijeme izvođenja.
TOpenDialog i TSaveDialog
Dijaloški okviri Otvaranje datoteke i Spremanje datoteke imaju nekoliko zajedničkih svojstava. Otvaranje datoteke obično se koristi za odabir i otvaranje datoteka. Dijaloški okvir Spremi datoteku (koristi se i kao dijaloški okvir Spremi kao) koristi se pri dobivanju imena datoteke od korisnika u svrhu spremanja datoteke. Neka od važnih svojstava TOpenDialog i TSaveDialog su:
- Opcije svojstva su vrlo važna u određivanju konačnog izgleda i izgleda kutije. Na primjer, redak koda poput:
s OpenDialog1 činiOpcije: = Opcije + [ofAllowMultiSelect, ofFileMustExist];
zadržat će se već postavljene opcije i omogućiti korisnicima da odaberu više datoteka u dijaloškom okviru zajedno s generiranjem poruke o pogrešci ako korisnik pokuša odabrati nepostojeću datoteku. - InitialDir svojstvo se koristi za određivanje direktorija koji će se koristiti kao početni direktorij kada se prikaže dijaloški okvir datoteke. Sljedeći kôd osigurat će da je početni direktorij Otvorenog dijaloškog okvira direktorij pokretanja aplikacija.
SaveDialog1.InitialDir: = ExtractFilePath (aplikacija. ExeName);
- filtar svojstvo sadrži popis vrsta datoteka iz kojih korisnik može odabrati. Kad korisnik odabere vrstu datoteke s popisa, u dijaloškom okviru se prikazuju samo datoteke odabrane vrste. Filter se lako može postaviti u vrijeme dizajna kroz dijaloški okvir Uređivač filtra.
- Da biste stvorili maske datoteka u programskom kodu, dodijelite vrijednost svojstvu Filter koja se sastoji od opisa i maske odvojene znakom okomite trake (cijevi). Kao ovo:
OpenDialog1.Filter: = 'Tekstualne datoteke (* .txt) | * .txt | Sve datoteke (*. *) | *. * ';
- Naziv datoteke nekretnine. Jednom kada korisnik klikne gumb U redu u dijaloškom okviru, ovo će svojstvo sadržavati puni put i naziv odabrane datoteke.
Izvršiti
Za stvaranje i prikaz zajedničkog dijaloškog okvira trebamo ih obraditi Izvršiti metoda određenog dijaloškog okvira tijekom vremena izvođenja. Osim TFindDialog i TReplaceDialog, svi se dijaloški okviri prikazuju modalno.
Svi uobičajeni dijaloški okviri omogućuju nam da utvrdimo je li korisnik kliknuo gumb Odustani (ili pritisne ESC). Budući da metoda Execute vraća True ako korisnik klikne gumb OK, moramo zarobiti klik na gumb Cancel kako bi bili sigurni da navedeni kôd nije izvršen.
ako OpenDialog1.Execute zatim ShowMessage (OpenDialog1.FileName);
Ovaj kôd prikazuje dijaloški okvir Otvori datoteku i prikazuje odabrano ime datoteke nakon "uspješnog" poziva za izvršavanje (kada korisnik klikne Otvori).
Napomena: Izvrši vraćanje True ako je korisnik kliknuo gumb OK, dvaput kliknuo naziv datoteke (u slučaju dijaloga datoteke) ili pritisnuo Enter na tipkovnici. Izvrši vraćanje Netačno ako je korisnik kliknuo gumb Odustani, pritisnuo tipku Esc, zatvorio dijaloški okvir s gumbom za zatvaranje sustava ili kombinacijom tipki Alt-F4.
Iz koda
Da bismo radili s otvorenim dijaloškim okvirom (ili bilo kojim drugim) tijekom izvođenja vremena, bez stavljanja OpenDialog komponente na obrazac, možemo koristiti sljedeći kôd:
postupak TForm1.btnFromCodeClick (Pošiljatelj: TObject); var OpenDlg: TOpenDialog; početi OpenDlg: = TOpenDialog. Stvorite (samo); {ovdje postavite opcije ...}ako OpenDlg. Izvršiti zatimpočeti {kôd da se ovdje nešto napravi} kraj; OpenDlg. Besplatno; kraj;
Napomena: Prije poziva na Execute, možemo (moramo) postaviti bilo koje svojstvo OpenDialog komponente.
MyNotepad
Napokon, došlo je vrijeme za napraviti stvarno kodiranje. Cijela ideja koja stoji iza ovog članka (i nekolicina drugih koji dolaze) je stvoriti jednostavnu MyNotepad aplikaciju - samostalni Windows poput aplikacije Notepad.
U ovom članku predstavljeni su nam dijaloški okviri Otvori i spremi, pa ih vidimo u djelovanju.
Koraci za stvaranje korisničkog sučelja MyNotepad-a:
. Pokrenite Delphi i odaberite Datoteka-nova aplikacija.
. Na obrazac stavite jedan Memo, OpenDialog, SaveDialog dva gumba.
. Preimenujte Button1 u btnOtvori, Button2 u btnSave.
šifriranje
1. Pomoću Inspektora objekta dodijelite sljedeći kôd događaju FormCreate:
postupak TForm1.FormCreate (pošiljalac: TObject); početis OpenDialog1 činipočeti Opcije: = Opcije + [ofPathMustExist, ofFileMustExist]; InitialDir: = ExtractFilePath (Aplikacija). ExeName); Filter: = 'Tekstualne datoteke (* .txt) | * .txt'; kraj; s SaveDialog1 činipočeti InitialDir: = ExtractFilePath (Aplikacija). ExeName); Filter: = 'Tekstualne datoteke (* .txt) | * .txt'; kraj; Memo1.ScrollBars: = ssBoth; kraj;
Ovaj kôd postavlja neka od svojstava Otvorenog dijaloga kao što je raspravljeno na početku članka.
2. Dodajte ovaj kôd za Onclick događaj gumba btnOtvori i btnSave:
postupak TForm1.btnOpenClick (Pošiljatelj: TObject); početiako OpenDialog1.Execute zatimpočeti Form1.Caption: = OpenDialog1.FileName; Memo1.Lines. LoadFromFile. (OpenDialog1.FileName); Memo1.SelStart: = 0; kraj; kraj;
postupak TForm1.btnSaveClick (Pošiljatelj: TObject); početi SaveDialog1.FileName: = Form1.Caption; ako SaveDialog1.Execute zatimpočeti Memo1.Lines. SaveToFile. (SaveDialog1.FileName + '.txt'); Form1.Caption: = SaveDialog1.FileName; kraj; kraj;
Pokrenite svoj projekt. Ne možete vjerovati; datoteke se otvaraju i spremaju kao i kod "prave" bilježnice.
Završne riječi
To je to. Sada imamo vlastiti "mali" bilježnicu.