jeg trengte lenker " à la " IE for et skjema. Så jeg i utgangspunktet trengte en TLabel men " TabStopable " og TStaticText kvalifiserer for det. Men det trenger ikke tegne en FocusRect når fokusert. Her er min løsning
grensesnitt
typen TStaticText = klasse (StdCtrls.TStaticText) private prosedyre DrawFocusRect.; Prosedyren WMSetFocus (var Melding: TWMSetFocus); Meldingen WM_SETFOCUS; Prosedyren WMKillFocus (var Melding: TWMSetFocus); Meldingen WM_KILLFOCUS; Prosedyren WMPaint (var Melding: TWMPaint); Meldingen WM_PAINT; end;
//alle komponentene som skjemaet arvet fra min modifiserte //TStaticText
TDataBrowseForm = klasse (TForm) Label1: TStaticText; Label2: TStaticText; private {felleserklæringer} offentlige {offentlige erklæringer} end;
....
implementering
....
prosedyre TStaticText.DrawFocusRect; Var DC: HDC; begynne DC: = GetDC (Handle); prøve Windows.DrawFocusRect (DC, Rect (1, 1, 1-bredde, høyde -1)); endelig ReleaseDC (Håndtak, DC); ende; end;
prosedyre TStaticText.WMKillFocus (var Melding: TWMSetFocus); begynne arvet; DrawFocusRect; end;
prosedyre TStaticText.WMPaint (var Melding: TWMPaint); begynne arvet; hvis Fokusert deretter DrawFocusRect; end;
prosedyre TStaticText.WMSetFocus (var Melding: TWMSetFocus); begynne arvet; DrawFocusRect; slutt;
Slik Endre Behaviour av en komponent uten Subclassing
Next Page:Synkende fra TObjectList