![]() |
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? |
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) ...
|
Re: savedialog Datentyp
Delphi-Quellcode:
:gruebel:
try dateispeichern except dateiErstellen; dateiSpeichern;
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; |
Re: savedialog Datentyp
Zitat:
|
Re: savedialog Datentyp
FileExists, da fehlt ein s, es heißt ja auch "to exist". ;-)
|
Re: savedialog Datentyp
Delphi-Quellcode:
Ich habe da noch ein paar Fragen zu diesen Zeilen.
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 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 |
Re: savedialog Datentyp
Delphi-Quellcode:
datei ist ja deine Dateivariable, das muss da verz heißen.
procedure TForm1.DateiSpeichern(verz: String);
|
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:
[Error] StoffersUnit1.pas(249): Incompatible types: 'String' and 'Text'
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; Ich weiß ich bin jetzt ein wenig Nervig aber ich würde das gerne hin bekommen. |
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 ... |
Re: savedialog Datentyp
Delphi-Quellcode:
Nur noch ein Fehler
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; [Error] StoffersUnit1.pas(257): Class type required Was genau bedeutet diese Zeile? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz