Bonjour
Dans un projet FMX, j'ai une TCombobox pour laquelle je veux désactiver le changement de sélection d'élément par la molette souris.
Je code l’événement comme suit:
Mais ça ne modifie pas le comportement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure TFrameRecord.ComboToMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); begin Handled := True; end;
J'ai alors l'idée d'aller voir plus loin dans le source Delphi de FMX.Listbox
Ce code est exécuté après l’événement que j'ai créé et le changement du paramètre Handled dans mon code n'est donc jamais pris en compte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 procedure TCustomComboBox.MouseWheel(Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); begin inherited; if WheelDelta < 0 then begin if ItemIndex < Count - 1 then ItemIndex := ItemIndex + 1 end else if ItemIndex > 0 then ItemIndex := ItemIndex - 1; Handled := True; end;
Pour moi, le code devrait être
Questions:
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 procedure TCustomComboBox.MouseWheel(Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); begin inherited; if not Handled then if WheelDelta < 0 then begin if ItemIndex < Count - 1 then ItemIndex := ItemIndex + 1 end else if ItemIndex > 0 then ItemIndex := ItemIndex - 1; Handled := True; end;
1 - Est-ce un bug
2 - Si oui, comment je peux contourner ce problème ?
Partager