Bonjour,
je voudrais savoir comment mettre une precedure en pause le temps qu une autre soit effectuer.
J'ai fait un tour sur la FAQ, mais je n'ai rien vu ou mal vu.
je pensais a un progressbar, mais y surement mieux..
merci
a+
Bonjour,
je voudrais savoir comment mettre une precedure en pause le temps qu une autre soit effectuer.
J'ai fait un tour sur la FAQ, mais je n'ai rien vu ou mal vu.
je pensais a un progressbar, mais y surement mieux..
merci
a+
Tu travailles avec des threads ? Si oui, il faut regarder du côté des événements (events) qui sont exactement prévus pour ce type de comportement.
Sinon, explique comment tu peux avoir une procédure qui doit en attendre une autre
Desole j'ai pas votre niveau,je vais mattre un bout de code , c'est des test donc pas super classe.
Comme je l'ai dit dans le code , je veux bloquer ma procedure avant le xhith afin d ouvrir la form2 et recuper les valeur des edit de cette form2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 table1.Last; calcule.Last; cpt:=table1.Fields[4].AsInteger; cpt2:=calcule.fields[0].asinteger; planner1.Caption.Title:=edit8.Text; Planner1.Items.Selected:=nil; form2.Show form2.Enabled:=true; ///////tantque/////// while form2.Enabled //c'est la a l appel de la form2 je souhaite bloquer les evenement qui suivent a savoir insert un nouvel items do begin end; if planner1.Items.HasItem(fromSel,toSel,Position) then begin ShowMessage('Cannot create item.'#13#10'Selected period already contains an item without overlap !'); Exit; end; Planner1.Items.BeginUpdate; with (Planner1.Items.Add) do begin Text.Add(Edit6.Text); //affiche la valeur de l'edit dans l items cree Name := 'Test'; ItemPos := Position; ItemEnd := ToSel; ItemBegin := FromSel; edit1.Text:= inttostr( ItemPos) ; edit2.Text:= inttostr( ItemEnd); edit3.Text:= inttostr( ItemBegin); CaptionType := ctTime; //enregistrement dans la table table1.Insert; calcule.Insert; table1.Fields [0].AsInteger:= ItemPos ; table1.Fields [1].AsInteger:=ItemEnd; table1.Fields [2].AsInteger:=ItemBegin; table1.Fields [3].AsString:=planner1.Items.Items[0].Text.GetText; table1.Fields [4].AsInteger:=cpt + 1 ; table1.Fields [6].asstring:=edit8.text; //table1.Fields[7].AsString:=planner1.Items.Items[i].GetCaptionString; calcule.Fields[0].AsInteger:=cpt2+1; calcule.Fields[1].AsDateTime:= (planner1.Items.Items[i].ItemStartTime); calcule.Fields[2].AsDateTime:=(planner1.Items.Items[i]. ItemEndTime); calcule.Fields[3].AsDateTime:= (calcule.Fields[2].AsDateTime)- (calcule.Fields[1].AsDateTime); calcule.Fields[4].Asstring:=edit8.text ; end; Planner1.Items.EndUpdate; edit4.Text:=planner1.Items.Items[i].ItemSpanTimeStr;//planner1.Items.Items[i].ItemStartTimeStr ; //affiche heure debut edit5.Text:=planner1.Items.Items[i].ItemendTimeStr ; //affiche heures fin edit7.Text:=planner1.Items.Items[i].Text.GetText; //recupre valeur d u texte i:=i+1; table1.Post; calcule.Post;
merci
je ne sais pas si j'ai tout compris, mais à la base, lorsque dans une procédure tu en appelle une autre celle ci est entièrement exécutée avant de revenir à la première non?
bon pour l'exemple que tu as donné, si tu utilisais ShowModal en lieu et place de Show pour l'affichage de form2, cela t'éviterais d'utiliser une boucle.
euh, je ne vois pas de rapport.Envoyé par neuneu1
ben avec la procedure insert de tms planner, ca pas l'ai d arreter la procedure.
Le progressebar, c'etait pour la bouchle tant que .
Tant que la progresse bar n'est pas a la fin faire un truc, si progressebar a 10 reprendre la procedure..
j'essaye des truc
Je vais refaire un essaye avec showmodal.
merci
a+
Bonjour
Je rejoins Evarisnea , je te proposeform2.Show
form2.Enabled:=true;
///////tantque///////
while form2.Enabled //c'est la a l appel de la form2 je souhaite bloquer les evenement qui suivent a savoir insert un nouvel items
do begin
end;
Tant que ta Form2, ne sera pas fermée, le code apres
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 form2.Enabled:=true; form2.ShowModal; //les 2 lignes qui suivent devienennt superflues while form2.Enabled //c'est la a l appel de la form2 je souhaite bloquer les evenement qui suivent a savoir insert un nouvel items dobegin end;
le form2.ShowModal ne sera pas executé
ShowModal, donne la main a ta fiche, en la mettant au premier plan.
Tant qu'elle sera active, le code appelant sera "gelé"
sauf les eventuels TTimers,et TThread il me semble.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager