Création d'un bloc-notes Delphi: ouvrir et enregistrer

click fraud protection

Lorsque vous travaillez avec diverses applications Windows et Delphes, nous nous sommes habitués à utiliser l'un des standards Boîtes de dialogue pour ouvrir et enregistrer un fichier, rechercher et remplacer du texte, imprimer, choisir des polices ou définir des couleurs.

Dans cet article, nous examinerons certaines des propriétés et méthodes les plus importantes de ces boîtes de dialogue en mettant un accent particulier sur Ouvert et sauvegarder Boîtes de dialogue.

Les boîtes de dialogue courantes se trouvent dans l'onglet Boîtes de dialogue de la palette des composants. Ces composants tirent parti des boîtes de dialogue Windows standard (situées dans une DLL de votre répertoire \ Windows \ System). Pour utiliser une boîte de dialogue commune, nous devons placer le ou les composants appropriés sur la fiche. Les composants communs de la boîte de dialogue sont non visuels (n'ont pas d'interface visuelle au moment de la conception) et sont donc invisibles pour l'utilisateur lors de l'exécution.

instagram viewer

TOpenDialog et TSaveDialog

Les boîtes de dialogue d'ouverture de fichier et d'enregistrement de fichier ont plusieurs propriétés communes. L'ouverture de fichier est généralement utilisée pour sélectionner et ouvrir des fichiers. La boîte de dialogue Fichier Enregistrer (également utilisée comme boîte de dialogue Enregistrer sous) est utilisée lors de l'obtention d'un nom de fichier de l'utilisateur afin d'enregistrer un fichier. Certaines des propriétés importantes de TOpenDialog et TSaveDialog sont:

  • le Les options Les propriétés sont très importantes pour déterminer l'apparence finale de la boîte. Par exemple, une ligne de code comme:
    avec OpenDialog1 faireOptions: = Options + [ofAllowMultiSelect, ofFileMustExist];
    conservera les options déjà définies et permettra aux utilisateurs de sélectionner plusieurs fichiers dans la boîte de dialogue et de générer un message d'erreur si l'utilisateur essaie de sélectionner un fichier inexistant.
  • le InitialDir La propriété est utilisée pour spécifier le répertoire qui sera utilisé comme répertoire initial lorsque la boîte de dialogue de fichier s'affiche. Le code suivant garantit que le répertoire initial de la boîte de dialogue Ouvrir est le répertoire de démarrage des applications.
    SaveDialog1.InitialDir: = ExtractFilePath (Application. ExeName);
  • le Filtre La propriété contient une liste des types de fichiers parmi lesquels l'utilisateur peut choisir. Lorsque l'utilisateur sélectionne un type de fichier dans la liste, seuls les fichiers du type sélectionné sont affichés dans la boîte de dialogue. Le filtre peut facilement être défini au moment de la conception via la boîte de dialogue Editeur de filtre.
  • Pour créer des masques de fichier dans le code de programme, affectez une valeur à la propriété Filter qui se compose d'une description et d'un masque séparés par une barre verticale (pipe). Comme ça:
    OpenDialog1.Filter: = 'Fichiers texte (* .txt) | * .txt | Tous les fichiers (*. *) | *. * ';
  • le Nom de fichier propriété. Une fois que l'utilisateur clique sur le bouton OK dans une boîte de dialogue, cette propriété contiendra le chemin d'accès complet et le nom de fichier du fichier choisi.

Exécuter

Pour créer et afficher une boîte de dialogue commune, nous devons traiter le Exécuter méthode de la boîte de dialogue spécifique à l'exécution. À l'exception de TFindDialog et TReplaceDialog, toutes les boîtes de dialogue sont affichées de façon modale.

Toutes les boîtes de dialogue courantes nous permettent de déterminer si l'utilisateur clique sur le bouton Annuler (ou appuie sur ÉCHAP). Étant donné que la méthode Execute renvoie True si l'utilisateur a cliqué sur le bouton OK, nous devons intercepter un clic sur un bouton Annuler pour nous assurer que le code donné n'est pas exécuté.

si OpenDialog1.Execute ensuite
ShowMessage (OpenDialog1.FileName);

Ce code affiche la boîte de dialogue d'ouverture de fichier et affiche un nom de fichier sélectionné après un appel «réussi» pour exécuter la méthode (lorsque l'utilisateur clique sur Ouvrir).

Remarque: Exécuter renvoie True si l'utilisateur a cliqué sur le bouton OK, double-cliqué sur un nom de fichier (dans le cas des boîtes de dialogue de fichier) ou appuyé sur Entrée sur le clavier. Exécuter renvoie Faux si l'utilisateur a cliqué sur le bouton Annuler, appuyé sur la touche Échap, fermé la boîte de dialogue avec le bouton de fermeture du système ou avec la combinaison de touches Alt-F4.

Du code

Afin de travailler avec Open dialog (ou tout autre) au moment de l'exécution sans placer un composant OpenDialog sur la fiche, nous pouvons utiliser le code suivant:

procédure TForm1.btnFromCodeClick (expéditeur: TObject); var OpenDlg: TOpenDialog; commencer OpenDlg: = TOpenDialog. Créer (Soi); {définir les options ici ...}si OpenDlg. Exécuter ensuitecommencer
{code pour faire quelque chose ici}
fin; OpenDlg. Gratuit; fin;

Remarque: Avant d'appeler Execute, nous pouvons (devoir) définir l'une des propriétés du composant OpenDialog.

MyNotepad

Enfin, il est temps de faire un vrai codage. L'idée derrière cet article (et quelques autres à venir) est de créer une application MyNotepad simple - Windows autonome comme l'application Notepad.
Dans cet article, nous sommes présentés avec des boîtes de dialogue Ouvrir et Enregistrer, alors voyons-les en action.

Étapes pour créer l'interface utilisateur de MyNotepad:
. Démarrez Delphi et sélectionnez Fichier-Nouvelle application.
. Placez un mémo, OpenDialog, SaveDialog deux boutons sur un formulaire.
. Renommez Button1 en btnOpen, Button2 en btnSave.

Codage

1. Utilisez l'inspecteur d'objets pour affecter le code suivant à l'événement FormCreate:

procédure TForm1.FormCreate (expéditeur: TObject); commenceravec OpenDialog1 fairecommencer
Options: = Options + [ofPathMustExist, ofFileMustExist]; InitialDir: = ExtractFilePath (Application. ExeName); Filtre: = 'Fichiers texte (* .txt) | * .txt'; fin; avec SaveDialog1 fairecommencer
InitialDir: = ExtractFilePath (Application. ExeName); Filtre: = 'Fichiers texte (* .txt) | * .txt'; fin; Memo1.ScrollBars: = ssBoth; fin;

Ce code définit certaines des propriétés de la boîte de dialogue Ouvrir, comme indiqué au début de l'article.

2. Ajoutez ce code pour l'événement Onclick des boutons btnOpen et btnSave:

procédure TForm1.btnOpenClick (expéditeur: TObject); commencersi OpenDialog1.Execute ensuitecommencer
Form1.Caption: = OpenDialog1.FileName; Memo1.Lines. LoadFromFile. (OpenDialog1.FileName); Memo1.SelStart: = 0; fin; fin;
procédure TForm1.btnSaveClick (expéditeur: TObject); commencer
SaveDialog1.FileName: = Form1.Caption; si SaveDialog1.Execute ensuitecommencer
Memo1.Lines. SaveToFile. (SaveDialog1.FileName + '.txt'); Form1.Caption: = SaveDialog1.FileName; fin; fin;

Exécutez votre projet. Vous ne pouvez pas le croire; les fichiers s'ouvrent et se sauvegardent comme avec le "vrai" bloc-notes.

Mots finaux

C'est ça. Nous avons maintenant notre "petit" bloc-notes.

instagram story viewer