L'heure dans un label [Résolu]

cs_othland 301 Messages postés jeudi 18 décembre 2003Date d'inscription 9 février 2010 Dernière intervention - 22 oct. 2006 à 11:11 - Dernière réponse : Guillemouze 1015 Messages postés samedi 25 octobre 2003Date d'inscription 29 août 2013 Dernière intervention
- 22 oct. 2006 à 20:35
slt tlm;
je voulais afficher l'heure dans un TLabel, et j'ai trouvé dans le forum une réponse interessante puisqu'elle ne repose pas sur l'utilisation d'un TTimer, mais elle consistait à faire ceci:
/////////////////////////////////////
On assigne une procédure à l'évènement OnIdel de Application :
Application.OnIdle := AppIdle;

On déclare une procédure dans la partie publique de la fiche
public
procedure AppIdle(Sender: TObject; var Done : Boolean);

Dans cette procédure, on inscrite le code suivant (par exemple):

procedure AppIdle(Sender: TObject; var Done : Boolean);
begin
//inscrire la date et l'heure sur Button1
Button1.Caption : = DateTimeToStr(Now);
//Recommencer au prochain temps mort
Done := False;
end;
//////////////////////////
le problème c'est que ça me genère une erreur en m'affichant:
[Erreur] Unit1.pas(36): Déclaration forward ou external non satisfaite : 'TForm1.AppIdle'
dans la ligne des déclarations publiques!!
qlq peut m'aider svp??
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 22 oct. 2006 à 13:33
3
Merci
procedure Tform1.AppIdle(Sender: TObject; var Done : Boolean);
begin
//inscrire la date et l'heure sur Button1
Button1.Caption := DateTimeToStr(Now);
//Recommencer au prochain temps mort
Done := False;
end;

<hr size="2" width="100%" />Croc (click me)

Merci f0xi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de f0xi
cs_sim51 314 Messages postés dimanche 31 octobre 2004Date d'inscription 31 décembre 2006 Dernière intervention - 22 oct. 2006 à 12:48
0
Merci
Salut
C'est simple tu a oublié de mettre form1 devant AppIdle :

procedure form1.AppIdle(Sender: TObject; var Done : Boolean);
begin
//inscrire la date et l'heure sur Button1
Button1.Caption := DateTimeToStr(Now);
//Recommencer au prochain temps mort
Done := False;
end;

voilà, maintenant tu devrais plus avoir d'erreur.

Bonne continuation.

N'oubliez d'aller voir le règlement de C-S ici
N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!
Commenter la réponse de cs_sim51
cs_othland 301 Messages postés jeudi 18 décembre 2003Date d'inscription 9 février 2010 Dernière intervention - 22 oct. 2006 à 13:50
0
Merci
ok, ok, c'est ce que j'ai fait: TForm1.....
merci a vous tous!
Commenter la réponse de cs_othland
Guillemouze 1015 Messages postés samedi 25 octobre 2003Date d'inscription 29 août 2013 Dernière intervention - 22 oct. 2006 à 16:44
0
Merci
petite astuce : lorsque tu declare des procedures, property, ... dans une classe, tu peux les completer automatiquement en faisant CTRL+SHIFT+C (enfin c'est ce raccourci chez moi, ca doit etre un truc du genre "completer le code sous le curseur), avec le curseur a l'intrieur de ta classe. Petit exemple:

TMaClasse = class
private
public
    property MaProperty: integer;
  | constructor create;
    destructor Destroy; override;
    procedure MaProcedure(param: boolean);
end;

te donnera en faisant ctrl+shift+c (| est le curseur, en bleu ce qui est rajouté) :

TMaClasse = class

private
    FMaProperty: integer;
    procedure SetMaProperty(const Value: integer);

public

    property MaProperty: integer read FMaProperty write SetMaProperty;

    constructor create;

    destructor Destroy; override;

    procedure MaProcedure(param: boolean);

end;

procedure TMaClasse.SetMaProperty(const Value: integer);
begin

end;

constructor TMaClasse.create;
begin

end;

destructor TMaClasse.Destroy;
begin

    inherited;
end;

procedure TMaClasse.MaProcedure(param: boolean);
begin

end;
Commenter la réponse de Guillemouze
cs_sim51 314 Messages postés dimanche 31 octobre 2004Date d'inscription 31 décembre 2006 Dernière intervention - 22 oct. 2006 à 16:52
0
Merci
Re,
Ha oui j'avais oublié le T devant form1 dsl :( (merci f0xi :d).
Sinon c'est sympas ce raccourci, je pensais bien qu'il existait quelque chose de ce genre sous delphi pour facilité la création d'objet. (sous eclipse -pour le java - il y a une opton qui le fait automatiquement et qui en prime fait le code des getter et setter !!!).

N'oubliez d'aller voir le règlement de C-S ici
N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!
Commenter la réponse de cs_sim51
Guillemouze 1015 Messages postés samedi 25 octobre 2003Date d'inscription 29 août 2013 Dernière intervention - 22 oct. 2006 à 17:02
0
Merci
exact, je me suis trompé, le setter est :

procedure TMaClasse.SetMaProperty(const Value: integer);
begin
    FMaProperty := Value;
end;
Commenter la réponse de Guillemouze
cs_othland 301 Messages postés jeudi 18 décembre 2003Date d'inscription 9 février 2010 Dernière intervention - 22 oct. 2006 à 18:38
0
Merci
thanks men!
Commenter la réponse de cs_othland
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 22 oct. 2006 à 19:38
0
Merci
Pour info uniquement : "Compléter la classe sous le curseur" est une fonctionnalité bien pratique mais hélas pas disponible dans l'édition personnelle de Delphi.

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Commenter la réponse de cs_Delphiprog
Guillemouze 1015 Messages postés samedi 25 octobre 2003Date d'inscription 29 août 2013 Dernière intervention - 22 oct. 2006 à 20:35
0
Merci
ah, c'est bien dommage car c'est terriblement pratique, et je pense que je ne pourrais plus m'en passer aujourd'hui
Commenter la réponse de Guillemouze

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.