Delphi märkmiku loomine: avage ja salvestage

Töötades erinevate Windowsi rakendustega ja Delphi, oleme harjunud tegutsema ühe standardiga dialoogiboksid faili avamiseks ja salvestamiseks, teksti leidmiseks ja asendamiseks, printimiseks, fontide valimiseks või värvide määramiseks.

Selles artiklis uurime nende dialoogide kõige olulisemaid omadusi ja meetodeid, pöörates erilist tähelepanu Avatud ja Salvesta dialoogiboksid.

Tavalised dialoogiboksid on komponendi paleti vahekaardil Dialoogid. Need komponendid kasutavad ära Windowsi tavapärased dialoogiboksid (asuvad kataloogis \ Windows \ System asuvas DLL-is). Ühise dialoogiboksi kasutamiseks peame vormi panema vastava komponendi (komponendid). Tavalised dialoogiboksi komponendid on mittevisuaalsed (neil pole visuaalse kujundamise ja aja liidest) ning on seetõttu kasutajale käitusel nähtamatud.

TOpenDialog ja TSaveDialog

Dialoogiboksidel File Open ja File Save on mitu ühist omadust. Faili avamist kasutatakse tavaliselt failide valimiseks ja avamiseks. Dialoogiboksi File Save (Failide salvestamine) (kasutatakse ka dialoogiboksina Save As (Salvesta nimega)) kasutatakse failinime hankimisel kasutajalt faili salvestamiseks. Mõned TOpenDialog ja TSaveDialog olulised omadused on:

instagram viewer

  • Valikud omadused on karbi lõpliku ilme ja olemuse määramisel väga olulised. Näiteks koodirida nagu:
    koos OpenDialog1 tehaValikud: = Valikud + [ofAllowMultiSelect, ofFileMustExist];
    hoiab juba seatud suvandeid ja võimaldab kasutajatel dialoogiboksis valida mitu faili ning genereerib tõrketeate, kui kasutaja üritab valida olematu faili.
  • InitialDir atribuuti kasutatakse selle kataloogi täpsustamiseks, mida kasutatakse failidialoogi kuvamisel algkataloogina. Järgmine kood tagab, et avatud dialoogiboksi algkataloog on rakenduste käivituskataloog.
    SaveDialog1.InitialDir: = ExtractFilePath (rakendus. ExeName);
  • Filtreeri atribuut sisaldab failitüüpide loendit, mille hulgast kasutaja saab valida. Kui kasutaja valib loendist failitüübi, kuvatakse dialoogis ainult valitud tüüpi faile. Filtrit saab hõlpsasti kujundamise ajal seadistada dialoogiboksi Filtredaktor abil.
  • Programmikoodis failimaskide loomiseks määrake väärtusele Filter atribuut, mis koosneb kirjeldusest ja vertikaalse riba (toru) märgiga eraldatud maskist. Nagu nii:
    OpenDialog1.Filter: = 'Tekstifailid (* .txt) | * .txt | Kõik failid (*. *) | *. * ';
  • Faili nimi vara. Kui kasutaja klõpsab dialoogiboksis nuppu OK, sisaldab see omadus valitud faili täieliku tee ja failinime.

Täitke

Ühise dialoogiboksi tegelikuks loomiseks ja kuvamiseks peame töötlema Täitke konkreetse dialoogiboksi meetod käitusel. Kõik dialoogiboksid, välja arvatud TFindDialog ja TReplaceDialog, kuvatakse modaalselt.

Kõik tavalised dialoogiboksid võimaldavad meil kindlaks teha, kas kasutaja klõpsab nupul Tühista (või vajutab nuppu ESC). Kuna Execute method tagastab True väärtuse, kui kasutaja klõpsas nuppu OK, peame lõksu klõpsamise nupule Loobu veenduma, et antud koodi ei täideta.

kui OpenDialog1.Execute siis
ShowMessage (OpenDialog1.FileName);

Selle koodiga kuvatakse dialoogiboks File File (Fail avatud) ja pärast valitud meetodi edukaks kutsumiseks valitud faili nime (kui kasutaja klõpsab Open).

Märkus. Teostamine tagastab tõene, kui kasutaja klõpsas nuppu OK, topeltklõpsas failinimele (failidialoogide puhul) või vajutas klaviatuuril sisestusklahvi. Kui kasutaja klõpsas nupule Tühista, vajutas Esc-klahvi, sulges dialoogiboksi süsteemi sulgemise nupu või klahvikombinatsiooni Alt-F4 abil, tagastab Viga.

Koodist

Avatud dialoogi (või mõne muu) töötamise ajal töötamiseks ilma OpenDialogi komponenti vormile asetamata saame kasutada järgmist koodi:

protseduur TForm1.btnFromCodeClick (saatja: TObject); var OpenDlg: TOpenDialog; alustada OpenDlg: = TOpenDialog. Loo (ise); {määra siin valikud ...}kui OpenDlg. Täitke siisalustada
{kood siin midagi tegema}
lõpp; OpenDlg. Tasuta; lõpp;

Märkus. Enne Execute'i kutsumist saame (peame) seadistama OpenDialogi komponendi mis tahes atribuudi.

MyNotepad

Lõpuks on aeg teha tõeline kodeerimine. Selle artikli (ja väheste tulevaste) mõte on luua lihtne MyNotepadi rakendus - eraldiseisev Windows nagu Notepadi rakendus.
Selles artiklis on meile avatud dialoogiboksid Ava ja Salvesta, nii et vaatame neid toimimas.

MyNotepadi kasutajaliidese loomise sammud:
. Käivitage Delphi ja valige File-New Application.
. Pange vormile üks memo, OpenDialog, SaveDialog kaks nuppu.
. Nupp1 nimetatakse ümber btnOpeniks, Button2 nimega btnSave.

Kodeerimine

1. Kasutage objektiinspektorit järgmisele koodile FormCreate sündmusele omistamiseks:

protseduur TForm1.FormCreate (saatja: TObject); alustadakoos OpenDialog1 tehaalustada
Valikud: = Valikud + [ofPathMustExist, ofFileMustExist]; InitialDir: = ExtractFilePath (rakendus. ExeName); Filter: = 'Tekstifailid (* .txt) | * .txt'; lõpp; koos SaveDialog1 tehaalustada
InitialDir: = ExtractFilePath (rakendus. ExeName); Filter: = 'Tekstifailid (* .txt) | * .txt'; lõpp; Memo1.ScrollBars: = ssBoth; lõpp;

See kood seab mõned dialoogi avatuse atribuudid, nagu on käsitletud artikli alguses.

2. Lisage see kood nuppude btnOpen ja btnSave sündmuse Onclicki jaoks:

protseduur TForm1.btnOpenClick (saatja: TObject); alustadakui OpenDialog1.Execute siisalustada
Vorm1.Caption: = OpenDialog1.FileName; Memo1.Liinid. LoadFromFile. (OpenDialog1.FileName); Memo1.SelStart: = 0; lõpp; lõpp;
protseduur TForm1.btnSaveClick (saatja: TObject); alustada
SaveDialog1.FileName: = Form1.Caption; kui SaveDialog1.Execute siisalustada
Memo1.Liinid. SaveToFile. (SaveDialog1.FileName + '.txt'); Vorm1.Caption: = SaveDialog1.FileName; lõpp; lõpp;

Juhtige oma projekti. Sa ei suuda seda uskuda; failid avanevad ja salvestuvad nagu "päris" märkmiku puhul.

Lõppsõnad

See selleks. Nüüd on meil oma "väike" märkmik.

instagram story viewer