Neste
artigo você aprenderá um recurso que possibilita ao usuário trocar
dados entre aplicativos. Isso só é possível, por causa de uma
tecnologia denominada OLE. Além de trocar dados, ela também permite ao
usuário arrastar e soltar controles e ícones em novas posições,
realizando operações variadas.
Existem dois mecanismos de
Drag-And-Drop: o convencional e o baseado na tecnologia OLE (Object
Linking and Embedding), vinculação e incorporação de objetos.
O primeiro movimenta
controles dentro da aplicação em tempo de execução. Você ao
arrastar o controle de um lugar para outro ou mover uma sombra do
controle de uma área para outra, fazendo simular a troca de dados entre
diferentes partes de um mesmo aplicativo. Já o segundo, você criará
aplicações servidoras, capazes não apenas de receber, mas também
transferir dados para outras aplicações, isso é possível, devido a
um movimento chamado Drag-And-Drop. Um exemplo desse movimento, temos: o
mover de um documento no formato RTF criado em sua aplicação, para
outro que suporte o mesmo formato.
Visão geral do OLE Drag-And-Drop
A tecnologia OLE possui uma
visão orientada a documento, e não a aplicações. A idéia dessa
tecnologia é criar documentos para cumprir uma ou mais tarefas. Ela foi
criada para resolver tarefas de grande complexidade com um mínimo de
esforço por parte do usuário.
Para conhecê-lo melhor observe a tabela abaixo, com propriedades,
eventos e métodos, e veja se os controles que você adicionar em seus
projetos possuem os mesmos:
Categoria |
Operação |
Descrição |
Propriedades |
OLEDragMode |
Habilita
o tipo de operação OLE drag-and-drop, se
automático (sem intervenção do programador) ou
automático (via comandos). |
OLEDropMode |
Determina
como um controle responderá a uma
operação de soltar um objeto sobre ele. |
Eventos |
OLEDragDrop |
Gerado
quando um objeto é solto sobre um controle. |
OLEDragOver |
Gerado
quando um objeto é arrastado sobre um controle. |
OLEGiveFeedback |
Gerado
quando é necessário retornar uma informação
visual ao usuário após uma operação de drag-and-drop. |
Métodos |
OLEStartDrag |
Gerado
quando se inicia uma operação de drag-and-drop. |
OLESetData |
Gerado
quando um objeto é solto sobre um controle. |
OLECompleteDrag |
Gerado
quando uma operação drag-and-drop é finalizada. |
OLEDrag |
Inicia
uma operação manual de drag-and-drop. |
Existem dois meios de
realizar operações de drag-and-drop: a manual, sob o controle do
programador e o automático, onde é alterado o valor da propriedade
OLEDragMode para 1 (Automatic) e o Visual Basic cuida do restante dos
detalhes.
Agora vamos a um exemplo prático de um drag-and-drop automático:
Abra o Visual Basic e insira
no formulário o componente RichTextBox, se ele não estiver na palheta
de componentes, tecle as teclas CTRL+T para poder abrir a janela de
componentes e adicionar o componente a sua palheta. Marque a opção
Microsoft Rich TextBox Control 5.0 e clique em Ok.
Após a inclusão do
componente, clique duas vezes no controle para poder inserir o mesmo no
formulário. E percorra a lista de propriedades e altere o valor de
OLEDragMode para 1 (rtfOLEDragAutomatic).
Antes de mais nada insira o
seguinte código no evento Load do formulário, para que o RichTextBox
tenha sempre o mesmo tamanho do formulário:
RichTextBox1.Left = 0
RichTextBox1.Top = 0
RichTextBox1.Width = ScaleWidth
RichTextBox1.Height = ScaleHeight
Iremos fazer o mesmo no evento Resize do formulário:
RichTextBox1.Left = 0
RichTextBox1.Top = 0
RichTextBox1.Width = ScaleWidth
RichTextBox1.Height = ScaleHeight
Para uma melhor apresentação
de seu aplicativo, altere as seguintes propriedades do controle
RichTextBox: Scrollbars para 2 (rtfVertical) e RightMargin para qualquer
valor diferente de zero. De modo a permitir uma barra de rolagem de
texto vertical sempre que o texto atingir o limite da janela.
Artigo
extraído de
VBMAGAZINE