Urgent : code à corriger. Cela fait des jours que je suis dessus !!!!!!
Marcel
-
7 sept. 2001 à 18:37
kangaxx
Messages postés1Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention24 décembre 2004
-
24 déc. 2004 à 03:18
Le code qui suit sert à créer un compte à rebours. Les 2 dernières lignes de ce code sont incorrecte car le compilateur signale:
[Erreur]Unit1.pas(56):Types incompatibles
[Erreur]Unit1.pas(56):Types incompatibles: 'String' et 'Integer'
Je ne parviens pas, malgré ces indications, à corriger ce bug.
Quelqu'un peut-il me rectifier ce code ?
J'aimerais en effet que le décompte du compte à rebours
(programmé à 1 heure 5 minutes) s'affiche dans le Caption du Label 1
merci d'avance
_________________________________________________________
voici le code :
type
TForm1 = class(TForm)
Label1: TLabel; // affichage du décompte de temps
Timer1: TTimer; // décompte du temps
Button1: TButton;
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
Hr, Min, Sec:integer; // heures, minutes, secondes
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Sec > 0 then Sec := Sec-1
else begin
Sec := 59;
if Min > 0 then Min := Min-1
else begin
Min := 59;
if Hr > 0 then Hr := Hr-1;
end;
label1.Caption:= Hr+':'+Min+':'+Sec; //01:05:00 (1 heure 5 minutes)
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled:=true;
end;
arf,
je c pas si tu faisait du vb avant mais tu vien de commetre une erreur d'un ex-vbien :)
[Erreur]Unit1.pas(56):Types incompatibles: 'String' et 'Integer'
cette erreur signifie evidemment une incompatibilité de type, ce ki revien a dire ke y'a tu essay de faire rentrer un objet carré dans un trou rond ;) , le vb corrige cela mais pas le delphi
il faut donc utiliser des fonctions pour convertirs les types :
dan ton cas ca sera
IntToStr(nombre)
renvera la chaine de caractère de ce nombre
type
TForm1 = class(TForm)
Label1: TLabel; // affichage du décompte de temps
Timer1: TTimer; // décompte du temps
Button1: TButton; // bouton déclenchant le compte à rebours
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
Hr,Min,Sec:integer; // heures, minutes, secondes
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Sec > 0 then Sec := Sec-1
else begin
Sec := 59;
if Min > 0 then Min := Min-1
else begin
Min := 59;
if Hr > 0 then Hr := Hr-1;
end;
label1.Caption:= IntToStr(Hr)+':'+IntToStr(Min)+':'+IntToStr(Sec); //01:05:10 (1 heure 5 minutes 10 secondes)
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.enabled:=true
end;
kangaxx
Messages postés1Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention24 décembre 2004 24 déc. 2004 à 03:18
Ce code marche impecc, il suffit d'initialiser les variables minutes, secondes et heures. Merci beaucoup à toi, je cherchais justement depuis un moment comment utiliser un compteur, cela va me servir de base.
Rajoute ces 3 lignes dans la procedure button1click :
Sec := 0;
Min := 0;
Hr := 0;