Tsizectrl
Componente Delphi não visual para permitir a movimentação de tempo de execução e o redimensionamento dos controles.
Autor original: Angus Johnson
http://angusj.com/delphi/
http://angusj.com/delphi/sizectrl.html
Testado em:
Delphi 3, 4, 5, 6, 7, 10,1 Berlim, 10,2 Tóquio
Versão:
Este é um garfo desde a última versão do autor (7.2 - 3 de setembro de 2006)
Tsizectrl Component ScreenShots:
Dimensionamento:


MOVIMENTO:


Os controles alinhados desativaram as manipulares "Grab" de desativação ao longo de bordas fixas:

Vários controles podem ser movidos ou redimensionados juntos:


Uso básico:
- Adicione um componente tsizectrl (sizectrl1) ao seu formulário.
- Defina propriedades SizectL1 (cores do botão etc.) conforme desejado.
- Atribua métodos de eventos (Iniciar, durante e final de tamanho/mover eventos) conforme desejado.
- No método OnCreate do formulário, SizectL1.ReGisterControl () todos os alvos possíveis.
- Em um método Menuitem atribuído, alterne a propriedade SizectL1.Enabled.
- Uma vez ativado:
- Clique ou guia para selecionar alvos.
- Mantenha a tecla Shift para selecionar vários alvos.
- Redimensione os alvos clicando e arrastando os botões de redimensionamento de um alvo ou mantendo a tecla Shift para baixo enquanto usa as teclas de seta.
- Mova os controles clicando e arrastando um destino ou usando as teclas de seta.
Notas diversas:
A captura das mensagens WM_SETCURSOR dos cabeçalhos da ListView também exige a conexão do manipulador de mensagens do cabeçalho. Não acho que essa pequena melhoria no gerenciamento do cursor justifique o considerável esforço de programação extra.