Cita:
Empezado por José Luis Garcí
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