Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Highscoreliste auszeitangaben


Abu36 - Sa 25.03.06 12:33
Titel: Highscoreliste auszeitangaben
Schönen guten morgen


also, mein problem is das:

in form3 wird im panel eine gestoppte zeit ausgegeben.
den inhalt des panel, also die zeitangabe, möchte ich nun in eine variable schreiben.
im folgenden soll mit hilfe dieser zeitangabe in form4 eine highscoreliste erstellt werden, in einem stringgrid.

ich weiss nun nicht, ob ich den panelinhalt (zeitangabe) von string in integer mache und der variable zuweise.
also die variable steht bei public, sie soll dann ja in form4 weiterverwendet werden.

desweiteren frag ich mich, wie ich sie dann in die highscore liste (stringgrid) einfügen kann?????


Marc. - Sa 25.03.06 12:45

warum eine extra variable definieren?

Delphi-Quelltext
1:
2:
3:
begin
 Form4.StringGrid1.Cells[2,2] := Form3.panel1.Caption;
end;

ansonsten:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  Form3: TForm3;
  MeineVariable: String;

implementation
  uses unit4;

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
begin
 MeineVariable := panel1.Caption;
 Form4.StringGrid1.Cells[2,2] := MeineVariable;
end;


von string zu int und umgekehrt kannst du dir sparen, denn stringgrid.cells[x,y] verlangt zwar einen string, panel.caption ist bereits einer ;)


Danniolo - Sa 25.03.06 12:45

In welchem Format leigt diese Zeitangabe denn vor?

// Edit: Ma wieder zu lahm, aber NoTVerYEvilPzYchO Methode sollte auch funzen :roll:


Abu36 - Sa 25.03.06 15:11

das stoppen der zeit hab ich über einen timer gemacht


Delphi-Quelltext
1:
panel2.Caption:=timetostr(aktuelle_zeit);                    


und die variable aktuelle_zeit steht auf aktuelle_zeit:real= 0


Marc. - Sa 25.03.06 15:19

Zitat:
aktuelle_zeit:real= 0


du hast aktuelle_zeit als konstante definiert? :lol:


fidionael - Sa 25.03.06 15:20

user profile iconAbu36 hat folgendes geschrieben:
das stoppen der zeit hab ich über einen timer gemacht


Delphi-Quelltext
1:
panel2.Caption:=timetostr(aktuelle_zeit);                    


und die variable aktuelle_zeit steht auf aktuelle_zeit:real= 0


Das versteh ich nicht so richtig :P Du hast ernsthaft eine Timer-Komponente laufen, die nichts tut, außer die Zeit zu erhöhen?!
Nimm doch vorher die Zeit und nachher und bilde die Differenz...


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var t: TTime;
begin
 t:=time;
 
 // Ganz viel Quelltext *g*

 Aktuelle_Zeit:=time-t;
end;


Außerdem würde ich für eine Highscore nicht mit TimeToStr, sondern mit FloatToStr und einer Umrechnung arbeiten. Wenn du also z. B. deine Zeit in Sekunden haben willst:


Delphi-Quelltext
1:
 Aktuelle_Zeit:=time- t * 24 * 60 * 60;                    


Hoffe das hilft dir. Mfg

//Edit:
Ich gehe mal einfach davon aus das du Aktuelle_Zeit nich als Konstante sondern als Real deklariert hast und das = 0 als Initialwert gemeint war :-P


Abu36 - Sa 25.03.06 15:30

schön, wenn ichs nun aber so lassen will, wie kann ichs denn weiter machen??