Med delom z različnimi aplikacijami za Windows in Delphi, navajeni smo delati z enim od standardnih pogovorna okna za odpiranje in shranjevanje datoteke, iskanje in zamenjavo besedila, tiskanje, izbiro pisav ali nastavitev barv.
V tem članku bomo preučili nekatere najpomembnejše lastnosti in metode teh dialogov s posebnim poudarkom na Odprto in Shrani pogovorna okna.
Skupna pogovorna okna najdete na zavihku Dialogs v paleti komponent. Te komponente izkoristijo standardna pogovorna okna Windows (ki se nahajajo v DLL v vašem \ Windows \ System imeniku). Za uporabo skupnega pogovornega okna moramo na obrazec postaviti ustrezno komponento (sestavne dele). Komponente skupnega pogovornega okna so nevizualne (nimajo vizualnega vmesnika za čas oblikovanja) in so zato uporabnikom nevidne med izvajanjem.
TOpenDialog in TSaveDialog
Pogovorna okna Odpiranje in shranjevanje datotek imata več skupnih lastnosti. File Open se ponavadi uporablja za izbiro in odpiranje datotek. Pogovorno okno Shranjevanje datotek (ki se uporablja tudi kot pogovorno okno Shrani kot) se uporablja pri pridobivanju imena datoteke od uporabnika za shranjevanje datoteke. Nekatere pomembne lastnosti TOpenDialog in TSaveDialog so:
- The Opcije lastnosti so zelo pomembne pri določanju končnega videza in škatle. Na primer vrstico kode, kot je:
s OpenDialog1 storiMožnosti: = Možnosti + [ofAllowMultiSelect, ofFileMustExist];
bodo ohranile že nastavljene možnosti in uporabnikom omogoči, da v pogovornem oknu izberejo več kot eno datoteko in ustvarijo sporočilo o napaki, če uporabnik poskuša izbrati neobstoječo datoteko. - The InitialDir lastnost se uporablja za določanje imenika, ki bo uporabljen kot začetni imenik, ko se prikaže pogovorno okno datoteke. Naslednja koda zagotavlja, da je začetni imenik v pogovornem oknu Odprto imenik zagonskih aplikacij.
SaveDialog1.InitialDir: = ExtractFilePath (aplikacija. ExeName);
- The Filter lastnost vsebuje seznam vrst datotek, iz katerih lahko uporabnik izbere. Ko uporabnik s seznama izbere vrsto datoteke, se v pogovornem oknu prikažejo samo datoteke izbrane vrste. Filter lahko enostavno nastavite v času načrtovanja v pogovornem oknu Urejevalnik filtrov.
- Če želite ustvariti maske datotek v programski kodi, dodelite vrednost lastnosti Filter, ki jo sestavljata opis in maska, ločena z navpičnim znakom (cevi). Všečkaj to:
OpenDialog1.Filter: = "Besedilne datoteke (* .txt) | * .txt | Vse datoteke (*. *) | *. * ';
- The Ime datoteke premoženje. Ko uporabnik v pogovornem oknu klikne gumb V redu, bo ta lastnost vsebovala celotno pot in ime datoteke izbrane datoteke.
Izvedite
Za dejansko ustvarjanje in prikaz skupnega pogovornega okna moramo obdelati Izvedite metoda določenega pogovornega okna med izvajanjem. Razen TFindDialog in TReplaceDialog so vsa pogovorna okna prikazana modalno.
Vsa pogosta pogovorna okna nam omogočajo, da ugotovimo, ali uporabnik klikne gumb Prekliči (ali pritisne na ESC). Ker metoda Execute vrne True, če uporabnik klikne gumb V redu, moramo ujeti klik na gumb Prekliči, da se prepričamo, da navedena koda ni izvršena.
če OpenDialog1.Execute torej ShowMessage (OpenDialog1.FileName);
Ta koda prikaže pogovorno okno Odpri datoteko in po izbranem načinu klica za izvedbo (ko uporabnik klikne Odpri) prikaže izbrano ime datoteke.
Opomba: Izvajaj vrne True, če je uporabnik kliknil gumb V redu, dvakrat kliknil ime datoteke (v primeru dialogov datotek) ali pritisnil Enter na tipkovnici. Izvajaj vrne napačno, če je uporabnik kliknil gumb Prekliči, pritisnil tipko Esc, pogovorno okno zaprl s tipko za zapiranje sistema ali s kombinacijo tipk Alt-F4.
Iz kodeksa
Če želite med izvajanjem delovati z dialogom Open (ali katerim koli drugim), ne da bi na obrazec postavili komponento OpenDialog, lahko uporabimo to kodo:
postopek TForm1.btnFromCodeClick (Pošiljatelj: TObject); var OpenDlg: TOpenDialog; začeti OpenDlg: = TOpenDialog. Ustvari (Self); {tukaj nastavite možnosti ...}če OpenDlg. Izvedite torejzačeti {koda, da tukaj nekaj naredim} konec; OpenDlg. Prost; konec;
Opomba: Preden pokličemo Execute, lahko (moramo) nastaviti katero koli od lastnosti komponente OpenDialog.
MyNotepad
Končno je čas, da naredimo resnično kodiranje. Celotna ideja tega članka (in še nekaj drugih, ki prihajajo) je ustvariti preprosto MyNotepad aplikacijo - samostojni sistem Windows, kot je aplikacija Notepad.
V tem članku so predstavljena pogovorna okna Odpri in shrani, zato jih poglejmo v akciji.
Koraki za ustvarjanje uporabniškega vmesnika MyNotepad:
. Zaženite Delphi in izberite File-New Application.
. Na obrazec postavite en Memo, OpenDialog, SaveDialog dva gumba.
. Preimenujte Button1 v btnOpen, Button2 v btnSave.
Kodiranje
1. Z inšpektorjem objektov dodelite naslednjo kodo dogodku FormCreate:
postopek TForm1.FormCreate (Pošiljatelj: TObject); začetis OpenDialog1 storizačeti Možnosti: = Možnosti + [ofPathMustExist, ofFileMustExist]; InitialDir: = ExtractFilePath (aplikacija. ExeName); Filter: = 'Besedilne datoteke (* .txt) | * .txt'; konec; s SaveDialog1 storizačeti InitialDir: = ExtractFilePath (aplikacija. ExeName); Filter: = 'Besedilne datoteke (* .txt) | * .txt'; konec; Memo1.ScrollBars: = ssBoth; konec;
Ta koda nastavi nekatere lastnosti pogovornega okna Odprto, kot je bilo razloženo na začetku članka.
2. Dodajte to kodo za dogodek Onclick gumba btnOprite in btnSave:
postopek TForm1.btnOpenClick (Pošiljatelj: TObject); začetiče OpenDialog1.Execute torejzačeti Form1.Caption: = OpenDialog1.FileName; Memo1.Lines. Naloži od datoteke. (OpenDialog1.FileName); Memo1.SelStart: = 0; konec; konec;
postopek TForm1.btnSaveClick (Pošiljatelj: TObject); začeti SaveDialog1.FileName: = Form1.Caption; če SaveDialog1.Execute torejzačeti Memo1.Lines. SaveToFile. (SaveDialog1.FileName + '.txt'); Form1.Caption: = SaveDialog1.FileName; konec; konec;
Zaženite svoj projekt. Ne morete verjeti; datoteke se odpirajo in shranjujejo tako kot pri "pravem" Notepadu.
Zaključne besede
To je to. Zdaj imamo svoj "mali" beležnico.