hilfe: savedialog

phossy

Grünschnabel
hallöchen,

ich hab montag abschlussklausur in delphi und ich muss ne 4 schreiben. ansonsten darf ich in die mündliche. bei 6 kann ich nen jahr wiederholen :p

ein thema ist speichern und öffnen von dateien. n kumpel von mir hat da nen programm geschrieben welches den inhalt aus nem editfeld speichert.

hier der code:

Code:
function LoadData(filename: string): string;
var
  F: TextFile;  // was ist f? was macht f?
  data: string;  //was macht data?
begin
  AssignFile(F,filename);  //?
  {$i-}   //?
  Reset(F);   //?
  {$I+}   //?
  if (IOResult<>0) then ShowMessage('Dateizugriffsfehler!')  //was macht ioresult?
  else begin
    ReadLn(F,data);  //?
    CloseFile(F);   //?
  end;
  result := data;  
end;

procedure SaveData(filename, data: string);
var
  F: TextFile;
begin
  AssignFile(F,filename);
  {$i-}
  Rewrite(F);
  {$I+}
  if (IOResult<>0) then ShowMessage('Dateizugriffsfehler!')
  else begin
    WriteLn(F,data);
    CloseFile(F);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SaveDialog1.DefaultExt:='txt';              //Standard-Dateiendung setzen
  SaveDialog1.Options := [ofOverwritePrompt]; //Abfrage: Überschreiben? ja/nein
end;

procedure TForm1.OpenClick(Sender: TObject);
begin
  if (OpenDialog1.Execute) then Edit1.Text := LoadData(OpenDialog1.FileName);  //was passiert hier?
end;

procedure TForm1.SaveClick(Sender: TObject);
begin
  if (SaveDialog1.FileName='') then SaveAsClick(Sender) //Noch kein Dateiname
                                                        //vorhanden? Dann wie
                                                        //bei "Speichern unter"
                                                        //vorgehen.
  else SaveData(SaveDialog1.FileName,Edit1.Text);       //Sonst direkt Speichern
end;

procedure TForm1.SaveAsClick(Sender: TObject);
begin
  if (SaveDialog1.Execute) then SaveData(SaveDialog1.FileName,Edit1.Text); // ?
end;

procedure TForm1.Beenden1Click(Sender: TObject);
begin
     close;
end;

end.

ich hab mal das kommentiert, was ich nicht verstehe :rolleyes:
ich würd mich echt über jede hilfe freuen. also ich hab von programmieren null ahnung davon aber eher von design (photoshop, freehand etc.) falls jemand dann dort hilfe brauchen würde, würd ich ihm gerne helfen. ich könnt auch irgendwas grafisches herstellen. is ja alles kein ding. eine hand wäscht die andere. nur ich bin hier grad echt am verzweifeln :sad:

falls ihr icq habt könnt ihr mich auch dort erreichen. wär natürlich das coolste :)
94820849
 
if (IOResult<>0) then ShowMessage('Dateizugriffsfehler!') //was macht ioresult?
IOResult gibt die Nummer des letzten I/O-Fehlers zurück, der aufgetreten ist. Wenn kein Fehler aufgetreten ist, gibt IOResult 0 zurück.
if (OpenDialog1.Execute) then Edit1.Text := LoadData(OpenDialog1.FileName); //was passiert hier?
Die Methode Execute() von OpenDialog1 ruft einen Dateiauswahldialog auf und gibt TRUE zurück, wenn der Benutzer eine Datei ausgewählt hat. In diesem Fall wird der Eigenschaft Text von Edit1 die Rückgabe von LoadData() zugewiesen. LoadData ist eine Funktion, die, wie du ja in deinem Code sehen kannst, die Datei öffnet, die in OpenDialog1 ausgewählt wurde, und eine Zeile aus ihr liest. Diese Zeile gibt sie zurück.
if (SaveDialog1.Execute) then SaveData(SaveDialog1.FileName,Edit1.Text); // ?
Hier ist es ähnlich wie bei OpenDialog1.Execute. Auch die Methode Execute() von SaveDialog1 gibt TRUE zurück, wenn der Benutzer eine Datei ausgewählt hat. Sollte dies der Fall sein, wird die Funktion SaveData() mit dem Dateinamen und dem Inhalt von Edit1 als Argumente aufgerufen. SaveData() schreibt den Inhalt von Edit1 in die Datei.

Gawayn
 

Neue Beiträge

Zurück