[Delphi] Faire une pause dans une procedure
le.schtroumpf.jedi
Messages postés
66
Date d'inscription
Statut
Membre
Dernière intervention
-
nobody -
nobody -
J'ai dévellopé en Delphi une application qui doit attendre une frappe au clavier ou la fin d'un timer pour continuer.
Mon pb est le suivant, comment faire une pause dans une procedure ou est ce possible ?
La seule solution que j'ai trouvé est de décompser la procedure en plusieurs procedures, ainsi le timer ou le clavier lance la suite.
Je trouve ma solution pas très optimale car j'ai du faire appel à 7 procedure pour faire le traitement d'une seule.
Pourriez vous m'indiquer si une autre solution existe ?
Merci...
Mon pb est le suivant, comment faire une pause dans une procedure ou est ce possible ?
La seule solution que j'ai trouvé est de décompser la procedure en plusieurs procedures, ainsi le timer ou le clavier lance la suite.
Je trouve ma solution pas très optimale car j'ai du faire appel à 7 procedure pour faire le traitement d'une seule.
Pourriez vous m'indiquer si une autre solution existe ?
Merci...
A voir également:
- Delphi pause
- Delphi 7 - Télécharger - Langages
- Imprimante en pause hp ✓ - Forum Imprimante
- Facebook rencontre bug une pause s'impose - Forum Facebook
- Imprimante en pause ✓ - Forum Imprimante
- Stream mis en pause discord - Forum Audio
5 réponses
procedure TForm1.Button1Click(Sender: TObject);
begin
test :=false;
while not test do
application.ProcessMessages ;
edit1.Text:='pouet'; <------là tu ralentis lexécution de ton programme inutilement en définissant indéfiniment la valeur de ton contrôle
end;
il vaut mieux :
procedure TForm1.Button1Click(Sender: TObject);
begin
test :=false;
edit1.Text:='pouet';
while not test do
application.ProcessMessages ;
end;
begin
test :=false;
while not test do
application.ProcessMessages ;
edit1.Text:='pouet'; <------là tu ralentis lexécution de ton programme inutilement en définissant indéfiniment la valeur de ton contrôle
end;
il vaut mieux :
procedure TForm1.Button1Click(Sender: TObject);
begin
test :=false;
edit1.Text:='pouet';
while not test do
application.ProcessMessages ;
end;
pour faire une pause il existe la célébre fonction :
sleep(X)
si X=1000 ---> 1 seconde
si X=2000 ---> 2 secondes
...
...
sleep(X)
si X=1000 ---> 1 seconde
si X=2000 ---> 2 secondes
...
...
g une otre solution... mais ca marche en VB, je sais po pour delphi
l idee c de faire
tant que faux
Doevents <---- ca veut dire que ca permet a d autre evenements de s executer
fintq
et en fait quand tu a une frappe au clavier, ou ton timer qui se declenche, tu metsq ton booleen a vrai
si tu oublies le doevents, ton prog va boucler sans fin.... mais je connais po l equivalent de DoEvents en delphi, mais ca doit bien exister
l idee c de faire
tant que faux
Doevents <---- ca veut dire que ca permet a d autre evenements de s executer
fintq
et en fait quand tu a une frappe au clavier, ou ton timer qui se declenche, tu metsq ton booleen a vrai
si tu oublies le doevents, ton prog va boucler sans fin.... mais je connais po l equivalent de DoEvents en delphi, mais ca doit bien exister
ben ca m etonnes assez, parce que si tu fais un bete
tant que faux
blahblah
fintq
des que ton booleen passe a vrai il doit sortir du tant que...$
t sur qu il y a pas une couille o nivo de tes noms de variables, quelle sont bien declarees en global... tout ca ?
tant que faux
blahblah
fintq
des que ton booleen passe a vrai il doit sortir du tant que...$
t sur qu il y a pas une couille o nivo de tes noms de variables, quelle sont bien declarees en global... tout ca ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
chez moi ca marche
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
test : Boolean;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
test :=false;
while not test do
application.ProcessMessages ;
edit1.Text:='pouet';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
test :=true;
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
test : Boolean;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
test :=false;
while not test do
application.ProcessMessages ;
edit1.Text:='pouet';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
test :=true;
end;
end.