Pintando componentes apenas arrastando

 

Vamos mostrar nessa dica, como é fácil manipular o drag-drop dos componentes da VCL para simular uma paleta de cores. Primeiramente, adicione alguns Panels no formulário e diminui seu tamanho para que fique semelhante a um botão (poderíamos utilizar Labels nesse exemplo).

Altere a propriedade Color de cada Panel para uma cor diferente e DragMode para dmAutomatic . Deixe apenas um Panel com as configurações default . No evento OnDragOver do Panel que não foi modificado, digite o seguinte código:

 

Accept := Source is TPanel;

 

Accept é um parâmetro que indica se será “autorizado” arrastar outro objeto (parâmetro Source ) para o componente. Para o evento OnDragDrop digite o seguinte código:

 

Panel1.Color := (Source as TPanel).Color;

 

O código anterior, atribui na propriedade Color do Panel , a cor do Panel que foi arrastado ( Figura ). Note que apenas manipulamos dois eventos ( OnDragOver e OnDragDrop ) e conseguimos o arrastar-e-soltar dos componentes. Você pode utilizar essa dica para outros componentes da VCL.

 

por Luciano Pimenta