Bonjour,
Voici mon code pour etre le plus clair possible
J'ai un message d'erreur suivant :
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 function MessageDglPersonnalise(Couleur: TColor; Defaut: integer): TColor; var Form : TForm; Image: TImage; RadioGroup : TRadioGroup; begin if not ((Defaut=1) or (Defaut=2)) then Defaut := 0; Form := CreateMessageDialog('Voulez-vous rendre cette couleur ('+ColorToString(Couleur)+')', mtWarning, [MbOk]); try // Image Image := TImage.Create(Form); Image.Parent := Form; Image.Width := TImage(Form.FindComponent('Image')).Width; Image.Height := TImage(Form.FindComponent('Image')).Height; Image.Left := TImage(Form.FindComponent('Image')).Left; Image.Top := TImage(Form.FindComponent('Image')).Top; Image.Canvas.Brush.Color := Couleur; Image.Canvas.FillRect(rect(0,0,Image.width,Image.height)); // Ajout d'un radiogroup dans la boite de dialogue. RadioGroup := TRadioGroup.Create(Form); RadioGroup.Parent := Form; RadioGroup.Caption := ''; RadioGroup.Items.Clear; RadioGroup.Items.Add('de la même couleur'); RadioGroup.Items.Add('blanche'); RadioGroup.Items.Add('noire'); RadioGroup.ItemIndex := Defaut; RadioGroup.Left := TLabel(Form.FindComponent('Message')).Left; RadioGroup.Top := Image.Top+TLabel(Form.FindComponent('Message')).Height+Image.Top; RadioGroup.Width := 129; RadioGroup.Height := 73; // Bouton OK TButton(Form.FindComponent('Ok')).Top := Image.Top+TLabel(Form.FindComponent('Message')).Height +Image.Top+RadioGroup.Height+Image.Top; // Forme Form.ClientHeight := Image.Top+TLabel(Form.FindComponent('Message')).Height +Image.Top+RadioGroup.Height +Image.Top+TButton(Form.FindComponent('Ok')).Height+Image.Top; Form.Position := poScreenCenter; if RadioGroup.CanFocus then RadioGroup.SetFocus; Form.ShowModal; case RadioGroup.ItemIndex of 1 : Result := ClWhite; 2 : Result := ClBlack; else Result := Couleur; end; finally Image.Free; RadioGroup.Free; Form.Release; end; end;
"Impossible de focaliser sur une fenetre desactivée ou invisible"
L'erreur vient de la ligne
Vous pouvez m'expliquer comment je fais pour que lorsque mon message dialogue apparait je puisse directement avec les touches changer l'ItemIndex de mon RadioGroup sans devoir cliquer sur le RadioGroup pour lui donner le focus ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part if RadioGroup.CanFocus then RadioGroup.SetFocus;
Je tourne en depuis trop longtemps...
Merci
Partager