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
& 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
& nbsp
Modificar el comportamiento de un componente sin subclases
By Consejos Y Trucos
Modificar el comportamiento de un componente sin subclases : Multi-millones de consejos para hacer su vida más fácil.