AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

savedialog Datentyp

Ein Thema von Zeb22 · begonnen am 21. Mär 2009 · letzter Beitrag vom 22. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2   
Zeb22

Registriert seit: 30. Jan 2009
Ort: Hamburg
41 Beiträge
 
#1

savedialog Datentyp

  Alt 21. Mär 2009, 10:01
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: savedialog Datentyp

  Alt 21. Mär 2009, 17:43
1. if savedialog1.Execute = true denn es ist schon ein Boolean
2. Übergebe die datei als Parameter
procedure TForm1.dateiSpeichern( FileName: string); try dateispeichern( savedialog1.FileName) ...
Markus Kinzler
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#3

Re: savedialog Datentyp

  Alt 21. Mär 2009, 18:58
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;
  Mit Zitat antworten Zitat
Zeb22

Registriert seit: 30. Jan 2009
Ort: Hamburg
41 Beiträge
 
#4

Re: savedialog Datentyp

  Alt 21. Mär 2009, 19:38
Zitat von Satty67:
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;
if FileExits(datei, verz); wird bei mir als Fehler angezeigt. Gibt es FileExits überhaupt?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.330 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: savedialog Datentyp

  Alt 21. Mär 2009, 19:43
FileExists, da fehlt ein s, es heißt ja auch "to exist".
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Zeb22

Registriert seit: 30. Jan 2009
Ort: Hamburg
41 Beiträge
 
#6

Re: savedialog Datentyp

  Alt 21. Mär 2009, 19:49
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
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.330 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: savedialog Datentyp

  Alt 21. Mär 2009, 19:59
procedure TForm1.DateiSpeichern(verz: String); datei ist ja deine Dateivariable, das muss da verz heißen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Zeb22

Registriert seit: 30. Jan 2009
Ort: Hamburg
41 Beiträge
 
#8

Re: savedialog Datentyp

  Alt 21. Mär 2009, 20:07
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.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.330 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: savedialog Datentyp

  Alt 21. Mär 2009, 20:36
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
...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Zeb22

Registriert seit: 30. Jan 2009
Ort: Hamburg
41 Beiträge
 
#10

Re: savedialog Datentyp

  Alt 21. Mär 2009, 21:04
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?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 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