0/5 (4 avis)
Vue 4 346 fois - Téléchargée 338 fois
unit UIdle; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) StatusBar1: TStatusBar; procedure FormActivate(Sender: TObject); private { Procédure déclenchée lors des temps morts de l'application} procedure AppIdle(Sender: TObject; var Done: Boolean); public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.AppIdle(Sender: TObject; var Done: Boolean); begin //Afficher l'heure dans le TStatusBar StatusBar1.Panels[1].Text := TimeToStr(now); //Recommencer au prochain temps mort Done :=False; end; procedure TForm1.FormActivate(Sender: TObject); begin //Affectation d'une procédure à l'évènement OnIdle //de l'objet Application Application.OnIdle := AppIdle; end; end.
21 mai 2005 à 10:12
24 mai 2002 à 23:13
Cet exempe se voulait purement démonstratif et je n'ai pas voulu le surcharger de façon à ne pas créer de confusions.
En utilisant la technique de Nono40, on peut facilement interrompre les traitements en positionnant à False une variable booléenne qui serait globale au niveau de l'unité.
var
Stop : boolean;
procedure TForm1.Checkbox1click(Sender: TObject);
begin
Stop := CheckBox1.Checked;
end;
procedure TForm1.AppIdle(Sender: TObject; var Done: Boolean);
begin
Done := Stop;
if not done then
//traitement
end;
24 mai 2002 à 22:45
Var IdleEnCours:Boolean;
procedure TForm1.AppIdle(Sender: TObject; var Done: Boolean);
begin
If IdleEnCours then Exit;
IdleEnCours:=True;
Try
// Ici votre prog...
Finally
IdleEnCours:=False;
End;
Done :=False;
end;
Nono.
24 mai 2002 à 22:40
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.