Existe uma maneira simples de permitir a aba entre os controles não VCL e VCL em um formulário Delphi?
-
22-09-2019 - |
Pergunta
Eu tenho uma forma delphi com um monte de controles VCL, como tbutton e tcheckbox, e uma instância do Scintilla editor de texto. Quero poder entrar e sair do editor de texto, mas parece que as guias são tratadas pela biblioteca VCL e não pelo Windows.
Eu pisei no código e parece que as guias são tratadas pelos métodos SelectNext e FindNextControl da classe Twincontrol. Esses métodos funcionam em objetos Twincontrol, mas o editor de texto não desce do Twincontrol como Tbutton e TcheckBox.
Existe uma maneira simples de permitir a aba entre os controles não VCL e VCL?
Solução
(fez disso uma resposta wiki, porque Rob está bastante correto em seus comentários acima, isso apenas regurgita)
O manuseio do teclado para caracteres / teclas especiais é tratado de uma maneira bastante especial pelo VCL, e a contornação / estendendo-a diretamente pela API WIN é certamente possível, mas não trivial.
Seria tão fácil e francamente mais flexível a longo prazo se você criar um invólucro de componente VCL personalizado em torno dos controles (use a fonte VCL como guia), realmente não é tão difícil (talvez um pouco tedioso), mas o pagamento- Off será tremendo em termos de manutenção e reutilização.
Editar:
E é claro que você pode simplesmente usar isso Wrapper Delphi grátis Para o editor de Scintilla.