Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 22 de Julho de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
42 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  O Componente OLEContainer
Publicado por Juniorhugo : Terça, Agosto 07, 2007 - 06:57 GMT-3 (2276 leituras)
Comentários 4 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Valdomiro Jr. Quem nunca viu no menu Inserir de um aplicativo MS Office, por exemplo, a opção Objeto? Veja neste artigo como você pode implementar isso no Delphi, e como interagir com os objetos inseridos.

Para criar um aplicativo Ole Container no Delphi, coloque um componente OleContainer (palheta System) em um formulário. Em seguida, selecione o componente e clique com o botão direito do mouse para ativar seu menu de atalho, o qual terá uma opção chamada "Insert Object". Quando você seleciona esse comando, o Delphi exibe a caixa de diálogo Inserir Objeto OLE padrão do Windows. Essa caixa de diálogo permite que você escolha um dos aplicativos servidores registrados no computador.

Uma vez que o objeto OLE esteja inserido no contêiner, o menu de atalho do componente contêiner de controle terá vários outros itens de menu personalizados. Os novos itens de menu incluem comandos para mudar as propriedades do objeto OLE, inserir outro, copiar objeto existente ou removê-lo. A lista também inclui os verbos ou ações do objeto (como Edit, Open ou Play).

Quando se tem um objeto OLE no contêiner, o servidor correspondente será ativado para permitir a edição do novo objeto. Assim que você fechar o aplicativo servidor, o Delphi atualizará o objeto no contêiner e o apresentará, até mesmo em tempo de projeto, no formulário do aplicativo Delphi que está sendo desenvolvido.

Se você examinar a descrição textual de um formulário contendo um componente com um objeto dentro, notará uma propriedade Data, que contém os dados reais do objeto OLE. Embora o programa cliente armazene os dados do objeto, ele não sabe como manipular e apresentar isso sem a ajuda do servidor correto (o qual deve estar disponível no computador onde o programa é executado). Isso significa que o objeto OLE está incorporado.

Para suportar totalmente documentos compostos, um programa deve fornecer um menu e uma barra de ferramentas ou painel. Esses componentes extras são importantes, pois a edição local implica em uma união da interface com o usuário do cliente e do programa servidor. Quando o objeto OLE é ativado no local, alguns dos menus suspensos da barra de menus do aplicativo servidor são adicionados à barra de menus do aplicativo contêiner.

A união de menu OLE é manipulada quase automaticamente pelo Delphi. Você só precisa configurar os índices corretos dos itens de menu do contêiner, usando a propriedade Grouplndex. Todo item de menu com um número de índice ímpar é substituído pelo elemento correspondente do objeto OLE ativo. Mais especificamente, os menus suspensos File (0) e Window (4) (ou Arquivo e Janela, respectivamente) pertencem ao aplicativo contêiner. Os menus suspensos Edit (1), View (3) e Help (5) (ou Editar, Exibir e Ajuda, respectivamente, ou os grupos de menus suspensos com esses índices) são obtidos pelo servidor OLE. Um sexto grupo, chamado Object (ou Objeto) e indicado com o índice 2, pode ser usado pelo contêiner para exibir outro menu suspenso entre os grupos Edit e View (Editar e Exibir), mesmo quando o objeto OLE está ativo.

O método InsertObjectDialog mostra uma caixa de diálogo de sistema, mas não ativa automaticamente o objeto OLE:

  procedure TForm.InserirObjeto1Click(Sender: TObject);
  begin
    if Olecontainer1.InsertobiectDialog then
      OleContainerl.DoVerb (OleContainerl.PrifllarYverb)
  end;

Tendo o objeto criado, você pode executar seu verbo principal usando método DoVerb.

Quando a edição local ativa um aplicativo servidor que exibe uma barra de ferramentas, a barra de ferramentas desse servidor substitui a barra de ferramentas do contêiner, a menos que você altere a propriedade Locked do painel em que a barra está, obrigando o painel assim, a permanecer presente no aplicativo e não ser substituído por uma barra de ferramentas do servidor.

Um bom exemplo sobre interação de aplicativos com OLEContainer pode ser encontrado no repositório do site, na áre de exemplos, pelo link (precisa estar logado):

http://www.activedelphi.com.br/modules.php?op=modload&name=Downloads&file=index&req=viewdownloaddetails&lid=471&ttitle=Automação

Abraços!

Valdomiro Farias de Andrade Júnior - Analista de Sistemas
Contato: procompanysistemas@infonet.com.br



Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: joemil : Ago 10, 2007 - 03:33
(Informações sobre o membro | Enviar uma mensagem)
rapaz, vc nao faz ideia de qto tempo eu tava procurando como fazer o Word "aparecer" dentro de um form. ja tinha ate desisitido.

o seu artigo veio na hora certa e de forma facil.

parabens pelo artigo.


por: piccininsouza : Out 13, 2007 - 03:32
(Informações sobre o membro | Enviar uma mensagem)
Parabéns!! Excelente artigo, ótima abordagem!
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados