Modificar el comportamiento de un componente sin subclases

Modificar el comportamiento de un componente sin subclases


necesitaba enlaces 'a la' IE de un formulario. Así que, básicamente, se necesita un TLabel pero 'TabStopable' y el TStaticText califica para eso. Pero no dibuja una FocusRect cuando enfocado. Aquí está mi solución.

interfaz

tipo
TStaticText = clase(StdCtrls.TStaticText)
privada
procedimiento DrawFocusRect
procedimiento WMSetFocus(var Message: TWMSetFocus) mensaje WM_SETFOCUS
procedimiento WMKillFocus(var Message: TWMSetFocus) mensaje WM_KILLFOCUS
procedimiento WMPaint(var Message: TWMPaint) mensaje WM_PAINT
fin

// todos los componentes de esa forma heredada de mi modificado
// TStaticText

TDataBrowseForm = class(TForm)
Label1: TStaticText
Label2: TStaticText
privada
{ Private declarations }
público
{ Public declarations }
fin

....

aplicación

....

procedimiento TStaticText.DrawFocusRect
var
CC: HDC
begin
CC := GetDC(Asa)
prueba
Windows.DrawFocusRect(DC, Rect(1, 1, Ancho-1, Altura -1))
finalmente
ReleaseDC(Mango, DC)
fin
fin

procedimiento TStaticText.WMKillFocus(var Message: TWMSetFocus)
begin
heredado
DrawFocusRect
fin

procedimiento TStaticText.WMPaint(var Message: TWMPaint)
begin
heredado
si se Centra, a continuación,
DrawFocusRect
fin

procedimiento TStaticText.WMSetFocus(var Message: TWMSetFocus)
begin
heredado
DrawFocusRect
fin
sample.gif

& nbsp







Modificar el comportamiento de un componente sin subclases


Modificar el comportamiento de un componente sin subclases : Multi-millones de consejos para hacer su vida mas facil.


necesitaba enlaces 'a la' IE de un formulario. Asi que, basicamente, se necesita un TLabel pero 'TabStopable' y el TStaticText califica para eso. Pero no dibuja una FocusRect cuando enfocado. Aqui esta mi solucion.

interfaz

tipo
TStaticText = clase(StdCtrls.TStaticText)
privada
procedimiento DrawFocusRect
procedimiento WMSetFocus(var Message: TWMSetFocus) mensaje WM_SETFOCUS
procedimiento WMKillFocus(var Message: TWMSetFocus) mensaje WM_KILLFOCUS
procedimiento WMPaint(var Message: TWMPaint) mensaje WM_PAINT
fin

// todos los componentes de esa forma heredada de mi modificado
// TStaticText

TDataBrowseForm = class(TForm)
Label1: TStaticText
Label2: TStaticText
privada
{ Private declarations }
publico
{ Public declarations }
fin

....

aplicacion

....

procedimiento TStaticText.DrawFocusRect
var
CC: HDC
begin
CC := GetDC(Asa)
prueba
Windows.DrawFocusRect(DC, Rect(1, 1, Ancho-1, Altura -1))
finalmente
ReleaseDC(Mango, DC)
fin
fin

procedimiento TStaticText.WMKillFocus(var Message: TWMSetFocus)
begin
heredado
DrawFocusRect
fin

procedimiento TStaticText.WMPaint(var Message: TWMPaint)
begin
heredado
si se Centra, a continuacion,
DrawFocusRect
fin

procedimiento TStaticText.WMSetFocus(var Message: TWMSetFocus)
begin
heredado
DrawFocusRect
fin
sample.gif

& nbsp

Modificar el comportamiento de un componente sin subclases

Modificar el comportamiento de un componente sin subclases : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación