Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Warnmeldung beim Speichern einer Datei (https://www.delphipraxis.net/57848-warnmeldung-beim-speichern-einer-datei.html)

Technikus 27. Nov 2005 15:44


Warnmeldung beim Speichern einer Datei
 
Hallo miteinander,
ich habe ein Problem mit der Darstellung und Ausführung eines Meldungsfensters(Delphi Prof.2005).
Folgender Sinn:
Ich möchte eine Datei speichern.
Wenn ich den Namen unter >>Dateiname<< eingetragen habe, sollte er überprüfen, ob der Name der Datei schon existiert.
Wenn ja, dann sollte er ein MessageDialog- Fenster mit Warnmeldung ausgeben und auf Bestätigung des JA- Buttons das Speichern durchführen.
Der Fehler wird schon in der Zeile "...=mrYes" angezeigt. Ich kann das Programm nicht starten. Wie muss ich den Code verändern?
Vielleicht hat von euch jemand einen hilfreichen Rat.

Delphi-Quellcode:
procedure TForm1.Button1_SpeichernClick(Sender: TObject);
var
    Messwert: TLeistung;
    i,anzahl: integer;
    Datei: TDatei;
    Dateiname: string;
begin
  Savedialog1.Execute;
  Dateiname:= Savedialog1.FileName;
  AssignFile(Datei,Dateiname);

  if FileExists(Dateiname) then
    MessageDlg
    ('Der Dateiname ist bereits vorhanden! Soll dieser überschrieben werden!',
     mtWarning,[mbYes,mbNo,mbCancel],0)=mrYes;
  begin
  Rewrite(Datei);
  anzahl:=StrToInt(Edit3_Eingabe_anzahl.Text);
  for i:= 1 to anzahl do
    with Messwert do
      begin
        nr:= i;
        Spannung:= StrToFloat(StringGrid1.Cells[1,i]);
        Strom:= StrToFloat (StringGrid1.Cells [2,i]);
        Write (Datei,Messwert);
        lx:= StrToInt (Edit1_lx_eingabe.Text);
      end;
    CloseFile (Datei);
  end;
Herzlichen Dank im Voraus
Technikus

jim_raynor 27. Nov 2005 15:45

Re: Warnmeldung beim Speichern einer Datei
 
Kann man ganz einfach mit String-Verknüpfungen machen:

Delphi-Quellcode:
'Der '+Dateiname+' ist bereits vorhanden! Soll dieser überschrieben werden!'
und richtig muss es
Delphi-Quellcode:
  if FileExists(Dateiname) then
  begin
    if MessageDlg
    ('Der Dateiname ist bereits vorhanden! Soll dieser überschrieben werden!',
     mtWarning,[mbYes,mbNo,mbCancel],0)=mrYes then
    begin
      Rewrite(Datei);
      anzahl:=StrToInt(Edit3_Eingabe_anzahl.Text);
      for i:= 1 to anzahl do
        with Messwert do
        begin
          nr:= i;
          Spannung:= StrToFloat(StringGrid1.Cells[1,i]);
          Strom:= StrToFloat (StringGrid1.Cells [2,i]);
          Write (Datei,Messwert);
          lx:= StrToInt (Edit1_lx_eingabe.Text);
        end;
      CloseFile (Datei);
    end;
  end;

Sharky 27. Nov 2005 15:46

Re: Warnmeldung beim Speichern einer Datei
 
Hai Technikus,

Du musst bei deinem MessageDlg auch eine IF-Abfrage machen.
Delphi-Quellcode:
if MessageDlg (...) = mrYes then
Zur Zeit hast Du diese ja nur für dein FileExists

marabu 27. Nov 2005 16:12

Re: Warnmeldung beim Speichern einer Datei
 
Hallo Technikus,

wenn du für die Ermittlung des Dateinamens die Komponente TSaveDialog verwendest, warum schaltest du dann nicht einfach die Option ofOverwritePrompt ein? Dann erledigt die Komponente für dich die Existenzprüfung und die Benachrichtigung des Benutzers.

Grüße vom marabu

Technikus 27. Nov 2005 16:19

Re: Warnmeldung beim Speichern einer Datei
 
Hallo,
ich habe es gerade geändert und siehe da, es funktioniert.

Ich danke dir ganz herzlich
Technikus


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz