Ver Mensaje Individual
  #5  
Antiguo 02-11-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.286
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por José Luis Garcí Ver Mensaje
Ahora mi pregunta es si es posible que el texto StateCaptions.CamptionOn/Caption Off, en vez de estar externo al interruptor, podría estar interno, en VCL, ya que en Firemonkey si es posible.
En el caso de este componente, simplemente debes redefinir los métodos que dibujan el texto, para que se haga donde deseas.
TDBToggleSwitch deriva de TToggleSwitch, que a su vez lo hace de TCustomToggleSwitch.

TCustomToggleSwitch a la hora de pintar llama al método paint que está protected y redefinido (por lo tanto puedes sobreescribirlo):

Código Delphi [-]
procedure Paint; override;

Dentro de ese método, tienes una llamada a DrawText, que en realidad son 2 similares dependiendo de estilos:
Código Delphi [-]
        StyleServices.DrawText(MemImage.Canvas.Handle, StyleServices.GetElementDetails(tbCheckBoxUncheckedNormal),
          GetActiveStateCaption, R, TextFormat, TextColor);
Si redefines ese método podrás llamar a DrawText con el parámetro lpRect (posición) diferente.
https://learn.microsoft.com/en-us/wi...nuser-drawtext
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita