Hallo Leute,
Ich stehe wieder vor einem Problem:
Ich möchte in meinen Spiel die 'Spiel speichern'-Funktion einbauen, was sicher auch ganz nützlich wäre.
Dazu habe ich mir ein extra Formular mit einer Gauge, einem Label und einem Timer erstellt.
Dabei soll der Speicher-Fortschritt nicht nur in der Gauge, sondern auch indirekt in Form von Punkten im Label erscheinen.
Z.B.: '
Das Spielprofil wird gespeichert...'
Für jeden Fortschritt im Speichern soll ein weiterer Punkt hinzukommen.
Klingt einfach, aber Delphi scheint mir dabei einen Strich durch die Rechnung machen zu wollen.
Denn immer, wenn eigentlich ein Punkt hinzukommen sollte, passiert überhaupt nichts, es steht nur dieser blöde vorher definierte Text da: '
Das Spielprofil wird gespeichert', und zwar ohne jeden Punkt...(bis auf die i-Punkte)
Hier der komplette Code für das Formular:
Delphi-Quellcode:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Gauges, StdCtrls, IniFiles, ExtCtrls;
type
TForm4 =
class(TForm)
Gauge1: TGauge;
start: TTimer;
Label1: TLabel;
procedure save;
procedure FormShow(Sender: TObject);
procedure startTimer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit1, Unit2, Unit3;
{$R *.dfm}
procedure TForm4.save;
var ini : TIniFile ;
var x , y : integer ;
begin
ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'
userdata.ini');
x := 1;
y := 1;
ini.WriteInteger('
General','
autoask',Unit1.stndrd_autoask);
while y < 8
do
begin
while x < 11
do
begin
Gauge1.Progress := ( ( y - 1 ) * 10 ) + x;
ini.WriteInteger('
Field('+IntToStr(x)+'
|'+IntToStr(y)+'
)','
type',Unit1.plantType[x,y]);
ini.WriteInteger('
Field('+IntToStr(x)+'
|'+IntToStr(y)+'
)','
start',Unit1.UnixStart[x,y]);
ini.WriteInteger('
Field('+IntToStr(x)+'
|'+IntToStr(y)+'
)','
finish',Unit1.UnixFinished[x,y]);
{if x mod 5 = 0 then
begin}
Label1.Caption := Label1.Caption + '
.';
//end;
Inc(x);
end;
Inc(y);
x := 1;
end;
ini.Free;
Gauge1.Progress := 1;
close
end;
procedure TForm4.FormShow(Sender: TObject);
begin
start.Enabled := True;
end;
procedure TForm4.startTimer(Sender: TObject);
begin
save;
end;
end.
Ich hoffe, ihr könnt mir helfen, und ich bedanke mich im Vorraus.