Die Daten des aktuell markierten Clients werden nun angezeigt. Die Funktion der Form soll jetzt um die Möglichkeit erweitert werden, die Daten eines Clients in einer Datei speichern zu können. Dazu platzieren Sie einen Button auf der Form und weisen ihm über den Object Inspector z.B. die Caption (Überschrift) In Datei speichern zu. Anschließend erstellen Sie über den Tab Events eine neue Funktion indem Sie einen Doppelklick in das leere Feld neben dem Event OnClick ausführen.
Vervollständigen der Form
Da der Benutzer später die Möglichkeit haben soll, die angezeigten Daten in einer beliebigen Datei speichern zu können, wird ein entsprechender (Standard-)Dialog benötigt, welcher eine Dateiauswahl zulässt. Um diesen zu erstellen, wechseln Sie von dem Code- zum Design-Tab und positionieren die Komponente TSaveDialog aus der Werkzeugpalette (unter Dialogs) auf der Form. Über den Object Inspector können Sie die z.B. die DefaultExt (Dateierweiterung) auf .txt und den Filter auf Text file (*.txt) | *.txt setzen. Die Komponente ist bei der Ausführung der Form allerdings nicht zu sehen.
Wechseln Sie nun wieder zur Quellcode-Ansicht in die Funktion Button1Click. Dort deklarieren Sie die TStringList-Variable data. Anschließend wird eine Sicherheitsabfrage eingebaut, welche kontrolliert, ob überhaupt ein Client in der ListBox markiert ist. Ist dies nicht der Fall, wird das Speichern über exit abgebrochen.
Dem TSaveDialog wird nun ein Dateiname zugewiesen. Dazu wird die markierte Clientname aus der ListBox ausgelesen, wie es bereits in der Funktion FormActivate geschieht. Anschließend wird der TSaveDialog in einer if-Abfrage ausgeführt. Dadurch öffnet sich der Standarddialog zum Speichern einer Datei. Als Dateiname ist bereits der eben zugewiesene Clientname als Vorschlag eingetragen. Wird der Dialog abgebrochen, wird ein Informationsdialog ausgegeben, dass das Speichern fehlgeschlagen ist.
Wird der Dialog bestätigt, wird in einem try/finally-Block die Variable data zunächst initialisiert und über die add()-Funktion mit den Daten aus den Edit-Feldern sowie dem Clientname aus der ListBox gefüllt. Anschließend wird die Methode SaveToFile aufgerufen, wodurch der Dateiinhalt in der ausgewählten Datei gespeichert wird. SaveDialog1.FileName beinhaltet dabei den ausgewählten Dateinamen.
Nach der Speicherung werden die Ressourcen der Variable data freigegeben. Die Form ist nun fertig und besitzt die verlangten Funktionen.
procedure Button1Click(Sender: TObject);
var
data : TStringList;
begin
if ListBox1.ItemIndex < 0 then
exit;
SaveDialog1.FileName := ListBox1.items.strings[ListBox1.ItemIndex] + '.txt';
if SaveDialog1.Execute(null) then
begin
try
data := TStringList.Create();
data.Add('Client = ' + ListBox1.items.strings[ListBox1.ItemIndex]);
data.Add('Domain = ' + EditDomain.Text);
data.Add('Beschreibung = ' + EditBeschreibung.Text);
data.Add('IP Adresse = ' + EditIP.Text);
data.Add('MAC Adresse = ' + EditMAC.Text);
data.Add('Betriebssystem = ' + EditOS.Text);
data.Add('Version = ' + EditVersion.Text);
data.Add('ServicePack = ' + EditSP.Text);
data.SaveToFile(SaveDialog1.FileName);
finally
data.Free;
ShowMessage('Daten wurden gespeichert in: ' + SaveDialog1.FileName);
end;
end;
else
ShowMessage('Speichern abgebrochen.');
end;
Zuletzt bearbeitet am 07.03.2017