Computerwissenschaften

Erstellen eines Delphi-Notizblocks: Öffnen und speichern

Während mit verschiedenen Windows – Anwendungen und Arbeits Delphi haben wir zum Betrieb mit einem der Standard gewöhnt werden  Dialogfelder  zum Öffnen und Speichern einer Datei, Suchen und Ersetzen von Text, den Druck, die Wahl Schriftarten oder Einstellung Farben.

In diesem Artikel werden einige der wichtigsten Eigenschaften und Methoden dieser Dialoge untersucht, wobei der Schwerpunkt auf dem  Öffnen  und  Speichern von  Dialogfeldern liegt.

Die allgemeinen Dialogfelder befinden sich auf der Registerkarte Dialoge der Komponentenpalette. Diese Komponenten nutzen die Standard-Windows-Dialogfelder (in einer DLL in Ihrem Verzeichnis \ Windows \ System). Um ein allgemeines Dialogfeld zu verwenden, müssen Sie die entsprechende Komponente (n) im Formular platzieren. Die gängigen Dialogfeldkomponenten sind nicht visuell (haben keine visuelle Entwurfszeitschnittstelle) und sind daher zur Laufzeit für den Benutzer unsichtbar.

 

TOpenDialog und TSaveDialog 

Die Dialogfelder Datei öffnen und Datei speichern haben mehrere gemeinsame Eigenschaften. Das Öffnen von Dateien wird im Allgemeinen zum Auswählen und Öffnen von Dateien verwendet. Das Dialogfeld „Datei speichern“ (auch als Dialogfeld „Speichern unter“ verwendet) wird verwendet, wenn Sie vom Benutzer einen Dateinamen abrufen, um eine Datei zu speichern. Einige der wichtigen Eigenschaften von TOpenDialog und TSaveDialog sind:

    • Die  Optionen-  Eigenschaften sind sehr wichtig, um das endgültige Erscheinungsbild der Box zu bestimmen. Zum Beispiel eine Codezeile wie:
      mit OpenDialog1 tun
      Optionen:=Optionen +
      [ofAllowMultiSelect, ofFileMustExist];

      Die bereits festgelegten Optionen bleiben erhalten, und Benutzer können mehr als eine Datei im Dialogfeld auswählen und eine Fehlermeldung generieren, wenn der Benutzer versucht, eine nicht vorhandene Datei auszuwählen.

    • Die  InitialDir-  Eigenschaft wird verwendet, um das Verzeichnis anzugeben, das als Anfangsverzeichnis verwendet wird, wenn das Dateidialogfeld angezeigt wird. Der folgende Code stellt sicher, dass das Anfangsverzeichnis des Dialogfelds „Öffnen“ das Startverzeichnis der Anwendungen ist.
      SaveDialog1.InitialDir: =
      ExtractFilePath (Application.ExeName);
    • Die  Filter-  Eigenschaft enthält eine Liste der Dateitypen, aus denen der Benutzer auswählen kann. Wenn der Benutzer einen Dateityp aus der Liste auswählt, werden im Dialogfeld nur Dateien des ausgewählten Typs angezeigt. Der Filter kann zur Entwurfszeit einfach über das Dialogfeld Filtereditor eingestellt werden.
    • Um Dateimasken im Programmcode zu erstellen, weisen Sie der Filter-Eigenschaft einen Wert zu, der aus einer Beschreibung und einer Maske besteht, die durch ein vertikales Balkenzeichen (Pipe) getrennt sind. So was:
      OpenDialog1.Filter: =
      'Textdateien (* .txt) | * .txt | Alle Dateien (*. *) | *. *';

 

  • Die  FileName-  Eigenschaft. Sobald der Benutzer in einem Dialogfeld auf die Schaltfläche OK klickt, enthält diese Eigenschaft den vollständigen Pfad und Dateinamen der ausgewählten Datei.

 

Ausführen

Um ein allgemeines Dialogfeld zu erstellen und anzuzeigen, müssen wir zur  Laufzeit die  Execute- Methode des jeweiligen Dialogfelds verarbeiten. Mit Ausnahme von TFindDialog und TReplaceDialog werden alle Dialogfelder modal angezeigt.

In allen gängigen Dialogfeldern können wir feststellen, ob der Benutzer auf die Schaltfläche Abbrechen klickt (oder ESC drückt). Da die Execute-Methode True zurückgibt, wenn der Benutzer auf die Schaltfläche OK geklickt hat, müssen wir einen Klick auf eine Schaltfläche Abbrechen abfangen, um sicherzustellen, dass der angegebene Code nicht ausgeführt wird.

wenn OpenDialog1.Execute dann
ShowMessage (OpenDialog1.FileName);

Dieser Code zeigt das Dialogfeld „Datei öffnen“ an und zeigt einen ausgewählten Dateinamen nach einem „erfolgreichen“ Aufruf zur Ausführung der Methode an (wenn der Benutzer auf „Öffnen“ klickt).

Hinweis: Execute gibt True zurück, wenn der Benutzer auf die Schaltfläche OK geklickt, auf einen Dateinamen doppelklickt hat (im Fall der Dateidialoge) oder auf der Tastatur die Eingabetaste gedrückt hat. Execute gibt False zurück, wenn der Benutzer auf die Schaltfläche Abbrechen geklickt, die Esc-Taste gedrückt und das Dialogfeld mit der Schaltfläche zum Schließen des Systems oder mit der Tastenkombination Alt-F4 geschlossen hat.

 

Aus dem Code

Um zur Laufzeit mit Open dialog (oder einem anderen) zu arbeiten, ohne eine OpenDialog-Komponente in das Formular einzufügen, können wir den folgenden Code verwenden:

Prozedur TForm1.btnFromCodeClick (Absender: TObject);
var OpenDlg: TOpenDialog;
begin OpenDlg:=TOpenDialog.Create (Self);
{Optionen hier einstellen ...} 
Wenn OpenDlg.Execute, dann  beginne
{Code, um hier etwas zu tun}
Ende ;
OpenDlg.Free;
Ende ;

Hinweis: Vor dem Aufruf von Execute können (müssen) wir alle Eigenschaften der OpenDialog-Komponente festlegen.

 

MyNotepad

Schließlich ist es Zeit für eine echte Codierung. Die ganze Idee hinter diesem Artikel (und einigen anderen, die kommen werden) ist, eine einfache MyNotepad-Anwendung zu erstellen – eigenständige Windows-ähnliche Notepad-Anwendung.
In diesem Artikel werden die Dialogfelder Öffnen und Speichern angezeigt. Lassen Sie uns sie in Aktion sehen.

Schritte zum Erstellen der Benutzeroberfläche von MyNotepad :
. Starten Sie Delphi und wählen Sie Datei-Neue Anwendung.
. Platzieren Sie ein Memo, OpenDialog, SaveDialog zwei Schaltflächen in einem Formular.
. Benennen Sie Button1 in btnOpen und Button2 in btnSave um.

 

 Codierung

1. Verwenden Sie den Objektinspektor, um dem FormCreate-Ereignis den folgenden Code zuzuweisen:

Prozedur TForm1.FormCreate (Absender: TObject);
beginnen 
mit OpenDialog1 do  beginnen
Optionen:=Optionen + [ofPathMustExist, ofFileMustExist];
InitialDir:=ExtractFilePath (Application.ExeName);
Filter:='Textdateien (* .txt) | * .txt';
Ende ;
mit SaveDialog1 tun  beginnen
InitialDir:=ExtractFilePath (Application.ExeName);
Filter:='Textdateien (* .txt) | * .txt';
Ende ;
Memo1.ScrollBars:=ssBoth;
Ende;

Dieser Code legt einige der Eigenschaften des Dialogfelds „Öffnen“ fest, wie am Anfang des Artikels erläutert.

2. Fügen Sie diesen Code für das Onclick-Ereignis der Schaltflächen btnOpen und btnSave hinzu:

Prozedur TForm1.btnOpenClick (Absender: TObject);
begin 
wenn OpenDialog1.Execute dann  beginne
Form1.Caption:=OpenDialog1.FileName;
Memo1.Lines.LoadFromFile
(OpenDialog1.FileName);
Memo1.SelStart:=0;
Ende ;
Ende ;
Prozedur TForm1.btnSaveClick (Absender: TObject);
Start
SaveDialog1.FileName:=Form1.Caption;
Wenn SaveDialog1.Execute, dann  beginne
Memo1.Lines.SaveToFile
(SaveDialog1.FileName + '.txt');
Form1.Caption:=SaveDialog1.FileName;
Ende ;
Ende ;

Führen Sie Ihr Projekt aus. Du kannst es nicht glauben; Dateien werden wie beim „echten“ Editor geöffnet und gespeichert.

 

Letzte Worte

Das ist es. Wir haben jetzt unseren eigenen „kleinen“ Notizblock.

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.