Creazione di un blocco note Delphi: Apri e salva

Mentre si lavora con varie applicazioni Windows e Delphi, ci siamo abituati ad operare con uno degli standard finestre di dialogo per aprire e salvare un file, trovare e sostituire testo, stampare, scegliere caratteri o impostare i colori.

In questo articolo, esamineremo alcune delle proprietà e dei metodi più importanti di quelle finestre di dialogo con particolare attenzione a Aperto e Salva finestre di dialogo.

Le finestre di dialogo comuni si trovano nella scheda Finestre della palette Componente. Questi componenti sfruttano le finestre di dialogo standard di Windows (che si trovano in una DLL nella directory \ Windows \ System). Per utilizzare una finestra di dialogo comune, è necessario posizionare il componente appropriato (componenti) sul modulo. I componenti comuni della finestra di dialogo non sono visivi (non hanno un'interfaccia visiva in fase di progettazione) e pertanto sono invisibili all'utente in fase di esecuzione.

TOpenDialog e TSaveDialog

Le finestre di dialogo Apri file e Salva file hanno diverse proprietà comuni. File Open viene generalmente utilizzato per selezionare e aprire i file. La finestra di dialogo Salva file (utilizzata anche come finestra di dialogo Salva con nome) viene utilizzata quando si ottiene un nome file dall'utente per salvare un file. Alcune delle proprietà importanti di TOpenDialog e TSaveDialog sono:

instagram viewer

  • Il Opzioni le proprietà sono molto importanti nel determinare l'aspetto finale della scatola. Ad esempio, una riga di codice come:
    con OpenDialog1 fareOpzioni: = Opzioni + [ofAllowMultiSelect, ofFileMustExist];
    manterrà le opzioni già impostate e consentirà agli utenti di selezionare più di un file nella finestra di dialogo insieme alla generazione di un messaggio di errore se l'utente tenta di selezionare un file inesistente.
  • Il InitialDir La proprietà viene utilizzata per specificare la directory che verrà utilizzata come directory iniziale quando viene visualizzata la finestra di dialogo del file. Il codice seguente assicurerà che la directory iniziale della finestra di dialogo Apri sia la directory di avvio delle applicazioni.
    SaveDialog1.InitialDir: = ExtractFilePath (Applicazione. Nomeexe);
  • Il Filtro La proprietà contiene un elenco dei tipi di file da cui l'utente può scegliere. Quando l'utente seleziona un tipo di file dall'elenco, nella finestra di dialogo vengono visualizzati solo i file del tipo selezionato. Il filtro può essere facilmente impostato in fase di progettazione tramite la finestra di dialogo Editor filtri.
  • Per creare maschere di file nel codice del programma, assegnare un valore alla proprietà Filter che consiste in una descrizione e una maschera separate da un carattere barra verticale (pipe). Come questo:
    OpenDialog1.Filter: = 'File di testo (* .txt) | * .txt | Tutti i file (*. *) | *. * ';
  • Il Nome del file proprietà. Una volta che l'utente fa clic sul pulsante OK in una finestra di dialogo, questa proprietà conterrà il percorso completo e il nome file del file scelto.

Eseguire

Per creare e visualizzare effettivamente una finestra di dialogo comune, è necessario elaborare Eseguire metodo della finestra di dialogo specifica in fase di esecuzione. Ad eccezione di TFindDialog e TReplaceDialog, tutte le finestre di dialogo vengono visualizzate in modo modale.

Tutte le finestre di dialogo comuni ci consentono di determinare se l'utente fa clic sul pulsante Annulla (o preme ESC). Poiché il metodo Execute restituisce True se l'utente ha fatto clic sul pulsante OK, è necessario intercettare un clic su un pulsante Annulla per assicurarsi che il codice specificato non sia eseguito.

Se OpenDialog1.Execute poi
ShowMessage (OpenDialog1.FileName);

Questo codice visualizza la finestra di dialogo Apri file e visualizza un nome file selezionato dopo una chiamata "riuscita" per eseguire il metodo (quando l'utente fa clic su Apri).

Nota: Execute restituisce True se l'utente ha fatto clic sul pulsante OK, ha fatto doppio clic sul nome di un file (nel caso delle finestre di dialogo del file) o ha premuto Invio sulla tastiera. Execute restituisce False se l'utente fa clic sul pulsante Annulla, preme il tasto Esc, chiude la finestra di dialogo con il pulsante di chiusura del sistema o con la combinazione di tasti Alt-F4.

Dal codice

Per lavorare con Open dialog (o qualsiasi altro) in fase di runtime senza posizionare un componente OpenDialog sul modulo, possiamo usare il seguente codice:

procedura TForm1.btnFromCodeClick (Sender: TObject); var OpenDlg: TOpenDialog; inizio OpenDlg: = TOpenDialog. Crea (Sé); {imposta le opzioni qui ...}Se OpenDlg. Eseguire poiinizio
{codice per fare qualcosa qui}
fine; OpenDlg. Gratuito; fine;

Nota: prima di chiamare Execute, possiamo (dobbiamo) impostare qualsiasi proprietà del componente OpenDialog.

MyNotepad

Finalmente è tempo di fare un vero codice. L'idea alla base di questo articolo (e pochi altri che verranno) è quella di creare una semplice applicazione MyNotepad - Windows standalone come l'applicazione Notepad.
In questo articolo ci vengono presentate le finestre di dialogo Apri e Salva, quindi vediamole in azione.

Passaggi per creare l'interfaccia utente di MyNotepad:
. Avviare Delphi e selezionare File-Nuova applicazione.
. Inserire un promemoria, OpenDialog, SaveDialog due pulsanti in un modulo.
. Rinomina Button1 in btnOpen, Button2 in btnSave.

Coding

1. Utilizzare Object Inspector per assegnare il seguente codice all'evento FormCreate:

procedura TForm1.FormCreate (Mittente: TObject); iniziocon OpenDialog1 fareinizio
Opzioni: = Opzioni + [ofPathMustExist, ofFileMustExist]; InitialDir: = ExtractFilePath (Applicazione. Nomeexe); Filtro: = 'File di testo (* .txt) | * .txt'; fine; con SaveDialog1 fareinizio
InitialDir: = ExtractFilePath (Applicazione. Nomeexe); Filtro: = 'File di testo (* .txt) | * .txt'; fine; Memo1.ScrollBars: = ssBoth; fine;

Questo codice imposta alcune delle proprietà della finestra di dialogo Apri come discusso all'inizio dell'articolo.

2. Aggiungi questo codice per l'evento Onclick dei pulsanti btnOpen e btnSave:

procedura TForm1.btnOpenClick (Mittente: TObject); inizioSe OpenDialog1.Execute poiinizio
Form1.Caption: = OpenDialog1.FileName; Memo1.Lines. LoadFromFile. (OpenDialog1.FileName); Memo1.SelStart: = 0; fine; fine;
procedura TForm1.btnSaveClick (Mittente: TObject); inizio
SaveDialog1.FileName: = Form1.Caption; Se SaveDialog1.Execute poiinizio
Memo1.Lines. SaveToFile. (SaveDialog1.FileName + '.txt'); Form1.Caption: = SaveDialog1.FileName; fine; fine;

Esegui il tuo progetto. Non ci puoi credere; i file si stanno aprendo e salvando proprio come con il "vero" Blocco note.

Parole finali

Questo è tutto. Ora abbiamo il nostro "piccolo" Blocco note.

instagram story viewer