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