Ändern Sie das Verhalten eines Bauteils ohne Unterklassen

Ändern Sie das Verhalten eines Bauteils ohne Unterklassen


Ich brauchte Links 'à la' IE für ein Formular. Ich brauchte also im Grunde eine TLabel, aber 'TabStopable' und die TStaticText dafür qualifiziert. Aber es keine FocusRect, wenn sich der Fokus zu zeichnen. Hier ist meine Lösung.

Schnittstelle

Typ
TStaticText = class(StdCtrls.TStaticText)
Private
Verfahren DrawFocusRect;
Procedure WMSetFocus (Var Message: TWMSetFocus); Meldung WM_SETFOCUS;
Procedure WMKillFocus (Var Message: TWMSetFocus); Nachricht WM_KILLFOCUS;
Procedure WMPaint (Var Message: TWMPaint); WM_PAINT Nachricht;
Ende;

alles, was die Komponenten des Formulars werden von meinem modifizierten geerbt
TStaticText

TDataBrowseForm = class(TForm)
Label1: TStaticText;
Label2: TStaticText;
Private
{Private Deklarationen}
öffentliche
{Public Deklarationen}
Ende;

....

Umsetzung

....

Prozedur TStaticText.DrawFocusRect;
var
DC: HDC;
beginnen
DC: = GetDC(Handle);
versuchen Sie
Windows.DrawFocusRect (DC, Rect (1, 1, Breite-1,-1 Height));
Schließlich
ReleaseDC (Handle, DC);
Ende;
Ende;

Procedure TStaticText.WMKillFocus (Var Message: TWMSetFocus);
beginnen
erbte;
DrawFocusRect;
Ende;

Procedure TStaticText.WMPaint (Var Message: TWMPaint);
beginnen
erbte;
Wenn dann konzentriert
DrawFocusRect;
Ende;

Procedure TStaticText.WMSetFocus (Var Message: TWMSetFocus);
beginnen
erbte;
DrawFocusRect;
Ende;
sample.gif








Ändern Sie das Verhalten eines Bauteils ohne Unterklassen


Ändern Sie das Verhalten eines Bauteils ohne Unterklassen : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Ich brauchte Links 'a la' IE für ein Formular. Ich brauchte also im Grunde eine TLabel, aber 'TabStopable' und die TStaticText dafür qualifiziert. Aber es keine FocusRect, wenn sich der Fokus zu zeichnen. Hier ist meine Lösung.

Schnittstelle

Typ
TStaticText = class(StdCtrls.TStaticText)
Private
Verfahren DrawFocusRect;
Procedure WMSetFocus (Var Message: TWMSetFocus); Meldung WM_SETFOCUS;
Procedure WMKillFocus (Var Message: TWMSetFocus); Nachricht WM_KILLFOCUS;
Procedure WMPaint (Var Message: TWMPaint); WM_PAINT Nachricht;
Ende;

alles, was die Komponenten des Formulars werden von meinem modifizierten geerbt
TStaticText

TDataBrowseForm = class(TForm)
Label1: TStaticText;
Label2: TStaticText;
Private
{Private Deklarationen}
öffentliche
{Public Deklarationen}
Ende;

....

Umsetzung

....

Prozedur TStaticText.DrawFocusRect;
var
DC: HDC;
beginnen
DC: = GetDC(Handle);
versuchen Sie
Windows.DrawFocusRect (DC, Rect (1, 1, Breite-1,-1 Height));
Schließlich
ReleaseDC (Handle, DC);
Ende;
Ende;

Procedure TStaticText.WMKillFocus (Var Message: TWMSetFocus);
beginnen
erbte;
DrawFocusRect;
Ende;

Procedure TStaticText.WMPaint (Var Message: TWMPaint);
beginnen
erbte;
Wenn dann konzentriert
DrawFocusRect;
Ende;

Procedure TStaticText.WMSetFocus (Var Message: TWMSetFocus);
beginnen
erbte;
DrawFocusRect;
Ende;
sample.gif

Ändern Sie das Verhalten eines Bauteils ohne Unterklassen

Ändern Sie das Verhalten eines Bauteils ohne Unterklassen : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Freunden empfehlen
  • gplus
  • pinterest

Kürzliche Posts

Kommentar

Einen Kommentar hinterlassen

Wertung