Bonjour,
Je cherche à interdire le focus à un TEdit sans utiliser la propriété Enabled, car elle change le layout et empêche l'affichage du hint.
J'ai essayé ceci mais ça marche à moitié car le contrôle précédent perd quand même le focus...
Frédéric
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 TmyEdit = class(TEdit) private FNoFocus: Boolean; proteced procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS; public function CanFocus: Boolean; override; procedure SetFocus; override; published property NoFocus: Boolean; read FNoFocus write FNoFocus default False; end; implementation procedure TmyEdit.WMSetFocus(var Message: TWMSetFocus); begin if not FNoFocus then inherited; end; function TmyEdit.CanFocus: Boolean; begin if not FNoFocus then Result := False else Result := inherited CanFocus; end; priocedure TmyEdit.SetFocus; begin if not FNoFocus then inherited; end;
Partager