Einzelnen Beitrag anzeigen

Saradmin

Registriert seit: 11. Mär 2011
10 Beiträge
 
#1

Problem mit Label-Caption

  Alt 19. Mär 2011, 14:42
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.

Geändert von Saradmin (19. Mär 2011 um 14:50 Uhr)
  Mit Zitat antworten Zitat