Bonjour à tous
Décidément ça rentre pas !!
J'ai un TEdit sur lequel fixer le focus tant qu'on n'en est pas sorti pas RETURN ou ESCAPE. Je gère les touches, ok. Mais mon prog passe à l'instruction suivant l'appel de la saisie sans s'y arrêter !!
J'ai fait un petit exemple ici :
Procéduire appelant la saisie :
Procédure de saisie :
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 procedure Ouverture; begin Handle_App := Application.Handle; Date_Der_Modif := '27-03-2011'; Form1.Caption := Date_Der_Modif; Initialiser_Variables; Saisie_Chn; if Saisie_Terminee = True then begin MessageDlg('Passage après saisie', mtInformation, [mbOK], 0); end else Form1.Edit1.SetFocus; Quitter; end;
Je gère les touches avec l'événement OnKeyDown du TEdit. Où dois-je placer Application.ProcessMessage ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Procedure Saisie_Chn; begin Saisie_Terminee := False; Form1.Edit1.Text := Txt_Initial; // Ou n'importe quoi d'autre Form1.Edit1.SetFocus; // N'attend pas la saisie des touches ds le TEdit !! end;
Merci
P.S.: je raisonne tjrs en procédural... J'ai des procédures programmant plusieurs choses, et lorsque je dois stopper le prog sur un TEdit, vlan !
Je rajoute la procedure traitant l'entrée des touches :
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 Procedure Traiter_Touche; begin CASE Touche OF vk_ESCAPE : begin Saisie_Terminee := True; Form1.Edit1.Text := Txt_Initial; Chn_Saisie := ''; Form1.Edit1.Enabled := False; Form1.Btn_Quitter.SetFocus; end; vk_RETURN : begin Saisie_Terminee := True; Chn_Saisie := Form1.Edit1.Text; Form1.Edit1.Enabled := False; Form1.StatusBar1.SimpleText := Chn_Saisie; Form1.Btn_Quitter.SetFocus; end; vk_F1 : begin Touche := 0; MessageDlg('Touche interdite !', mtWarning, [mbOK], 0); Form1.Edit1.SetFocus; end; else begin Touche := 0; Form1.Edit1.SetFocus; end; end; // Case end;
Partager