Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi savedialog Datentyp (https://www.delphipraxis.net/131252-savedialog-datentyp.html)

Zeb22 21. Mär 2009 10:01


savedialog Datentyp
 
Moin

Ich hab mir da son Dame Spiel programmiert, alle 24 Steine in ein Array gespeichert und jetzt möchte ich im laufenden Spiel dem Nutzer die Möglichkeit geben, dass er zum 1. Das Spiel speichern kann und 2. Ein Spiel öffnen kann.

Dazu habe ich dann folgendes geschrieben.

Delphi-Quellcode:


procedure TForm1.dateiErstellen;
begin
 AssignFile(datei, verz);
 ReWrite(datei);
 CloseFile(datei);
end;
procedure TForm1.dateiOeffnen;
begin
 AssignFile(datei, verz);
 reset(datei);
 read(datei, tw);
 CloseFile(datei);
end;
procedure TForm1.dateiSpeichern;
begin
 AssignFile(datei, verz);
 reset(datei);
 write(datei,tw);
 CloseFile(datei);
end;
procedure TForm1.SpielSpeichern1Click(Sender: TObject);
begin
 if savedialog1.Execute = true
  then
   begin
    verz := savedialog1.FileName;
    try dateispeichern except dateiErstellen; dateiSpeichern;
   end;
end;
end;

procedure TForm1.Spieloeffnen1Click(Sender: TObject);
begin
 if opendialog1.Execute = true
  then
   begin
    verz := opendialog1.FileName;
    try dateiOeffnen except showmessage('Datei nicht vorhanden');
   end;
end;
end;
end.

Oben bei den variablen habe ich 2: Variablen genommen und denen ein Recordtyp zugewissen.



Delphi-Quellcode:
var
tw  :        TTempFigurenPropertys;
datei: file of TTempFigurenPropertys;

Meine Frage jetzt: Wenn ich jetzt auf meine Buttons klicke um zugriff zu Speichern und Öffnen zu bekommen. Bekomme ich kein Datentyp hin um Sie wirklich sicher zu Speichern, noch Schlimmer mein Projekt bleibt hängen bzw bricht ab. Ich kann das also noch nicht vollständig nutzen. Hat da jemand eine Idee?

mkinzler 21. Mär 2009 17:43

Re: savedialog Datentyp
 
1. if savedialog1.Execute = true denn es ist schon ein Boolean
2. Übergebe die datei als Parameter
Delphi-Quellcode:
procedure TForm1.dateiSpeichern( FileName: string);
Delphi-Quellcode:
try dateispeichern( savedialog1.FileName) ...

Satty67 21. Mär 2009 18:58

Re: savedialog Datentyp
 
Delphi-Quellcode:
try dateispeichern except dateiErstellen; dateiSpeichern;
:gruebel:

ist das nicht besser?
Delphi-Quellcode:
procedure TForm1.dateiSpeichern(datei : String);
begin
  AssignFile(datei, verz);
  {$I-}
  if FileExits(datei) then
    reset(datei)
  else
    rewrite(datei);
  {$I-}
  if IOResult = 0 then
    write(datei,tw)
  else raise // Eigene oder Standard Exception
  CloseFile(datei);
end;

Zeb22 21. Mär 2009 19:38

Re: savedialog Datentyp
 
Zitat:

Zitat von Satty67
Delphi-Quellcode:
try dateispeichern except dateiErstellen; dateiSpeichern;
:gruebel:

ist das nicht besser?
Delphi-Quellcode:
procedure TForm1.dateiSpeichern(datei : String);
begin
  AssignFile(datei, verz);
  {$I-}
  if FileExits(datei) then
    reset(datei)
  else
    rewrite(datei);
  {$I-}
  if IOResult = 0 then
    write(datei,tw)
  else raise // Eigene oder Standard Exception
  CloseFile(datei);
end;

if FileExits(datei, verz); wird bei mir als Fehler angezeigt. Gibt es FileExits überhaupt?

jaenicke 21. Mär 2009 19:43

Re: savedialog Datentyp
 
FileExists, da fehlt ein s, es heißt ja auch "to exist". ;-)

Zeb22 21. Mär 2009 19:49

Re: savedialog Datentyp
 
Delphi-Quellcode:
procedure TForm1.dateiSpeichern(datei : String);
begin
   AssignFile(datei, verz);

  if FileExists(datei) then
    reset(datei)
  else
    rewrite(datei);

  if IOResult = 0 then
    write(datei,tw)
  else raise
  CloseFile(datei);
end;
Ich habe da noch ein paar Fragen zu diesen Zeilen.

Ich bekomme da einige Fehler Meldungen womit ich nicht ganz umgehen kann, bin noch neu in der Delphi szene.


[Error] StoffersUnit1.pas(231): Incompatible types
[Error] StoffersUnit1.pas(234): Incompatible types
[Error] StoffersUnit1.pas(236): Incompatible types
[Error] StoffersUnit1.pas(239): Illegal type in Write/Writeln statement
[Error] StoffersUnit1.pas(241): Incompatible types
[Error] StoffersUnit1.pas(257): Not enough actual parameters
[Error] StoffersUnit1.pas(257): Not enough actual parameters

jaenicke 21. Mär 2009 19:59

Re: savedialog Datentyp
 
Delphi-Quellcode:
procedure TForm1.DateiSpeichern(verz: String);
datei ist ja deine Dateivariable, das muss da verz heißen.

Zeb22 21. Mär 2009 20:07

Re: savedialog Datentyp
 
Delphi-Quellcode:
procedure TForm1.SpielSpeichern1Click(FileName: string);
begin
 if savedialog1.Execute = true then
  begin
   verz := savedialog1.FileName;
   try DateiSpeichern except dateiErstellen; DateiSpeichern; //Fehler
   end;
   end;
end;

Ich weiß nicht warum, im Grunde müsste es laufen aber dennoch zeigt er mir Fehler an.


[Error] StoffersUnit1.pas(229): Not enough actual parameters
[Error] StoffersUnit1.pas(229): Not enough actual parameters


Delphi-Quellcode:
procedure TForm1.DateiSpeichern(verz: String);
begin
   AssignFile(datei, verz);

  if FileExists(datei) then // Fehler
    reset(datei)
  else
    rewrite(datei);

  if IOResult = 0 then
    write(datei,tw)
  else raise
  CloseFile(datei);
end;
[Error] StoffersUnit1.pas(249): Incompatible types: 'String' and 'Text'



Ich weiß ich bin jetzt ein wenig Nervig aber ich würde das gerne hin bekommen.

jaenicke 21. Mär 2009 20:36

Re: savedialog Datentyp
 
Delphi-Quellcode:
procedure TForm1.SpielSpeichern1Click(FileName: string); // wozu der Parameter FileName?
begin
  if SaveDialog1.Execute then
    DateiSpeichern(SaveDialog1.FileName);
end;
Delphi-Quellcode:
...
if FileExists(verz) then
...

Zeb22 21. Mär 2009 21:04

Re: savedialog Datentyp
 
Delphi-Quellcode:
procedure TForm1.DateiSpeichern(verz: String);
begin
   AssignFile(datei, verz);

  if FileExists(verz) then
    reset(datei)
  else
    rewrite(datei);

  if IOResult = 0 then
    write(datei,tw)
  else raise
 CloseFile(datei); // Fehler

end;
Nur noch ein Fehler

[Error] StoffersUnit1.pas(257): Class type required

Was genau bedeutet diese Zeile?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 Uhr.
Seite 1 von 2  1 2      

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