Ir para conteúdo
Fórum Script Brasil
  • 0

Paleta Servers


Paulo Nobre

Pergunta

Tenho um programa de dados em que os principais são mostrados no word, como se fosse um relatório.

Usando a paleta Servers incluo dois componentes para conectar e usar o word.

Não tenho nenhum problema nem dúvida em relação ao código. Tudo funciona redondo.

Tenho o D7 e na instalação ele pergunta quais os arquivos relativos ao word desejo instalar para a aparecer na paleta server(Office 98-2000 ou XP), como tenho o 2003 escolhi o último e tudo funciona bem como já disse. Acontece que no trabalho tenho word 2000 e desta forma, pelo programa, o word não abre nem a pau.

Aí fiz o seguinte: no uses acrecentei Word2000(intuição) e trouxe para o trabalho para testar. Para minha surpresa funcionou normalmente.

Fiquei surpreso, pois não mudei uma linha de código sequer e os componentes de conexão são para wordXP, que funciona com o meu 2003(até aí tudo bem).

Alguém, que já trabalhou com este tipo de automação, sabe explicar porque funcionou?

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Isto provavelmente ocorreu pelo fato que as versões posteriores costumam manter compatibilidade com as versões anteriores. Já o contrário não é verdade. Assim, quando você fez o Type Cast para o Word2000, o programa continuou funcionando na sua máquina (que tem uma versão posterior do Word que deve ser compativel com a 2000).

Se você abir o editor de registros (RegEdit) e verificar HKEY_CLASSES_ROOT, você constatará que estão registradas algumas versões do Word e uma "genérica" (Word.Application). Nom meu caso que tenho instalado o Office 2000:

HKEY_CLASSES_ROOT\Word.Application

HKEY_CLASSES_ROOT\Word.Application.8

HKEY_CLASSES_ROOT\Word.Application.9

[]s

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado pela dica Micheus, esclareceu o que pode ser.

Mas, o que significa Type Cast ?

Aproveitando, você saberia dizer porque clicando por exemplo na unit(declaração)Windows com o botão direito do mouse e depois finddeclaritions aparecem todos os códigos da unit, mas clicando em WordXp ou Word2000, ele diz que não pode encontrar?

Link para o comentário
Compartilhar em outros sites

  • 0

Typecast é algo como dizer que um determinado tipo de dados é outro (normalmente compatíveis). Não consigo encontrar palavras para lhe explicar melhor, então vou lhe dar alguns exemplos de uso:

1) Uma situação que muito uso é para flags numéricos. Numa listbox com duas opções, onde ItemIndex será 0 ou 1, quando necessito fazer algum teste, faço da seguinte maneira if LongBool(ListBox1.ItemIndex) then, da mesma forma que o inverso é verdadeiro;

2) Quando utilizo a tag de um botão, para implementar duplo estado. Então, no OnClick faço algo como TBitBtn(Sender).Tag := Ord(not Boolean(TBitBtn(Sender).Tag)); Observe que aqui utilizei um outro typecast muito comum. Todos os eventos passam Sender como parâmetro e normalmente trata-se do objeto que o gerou. Originalmente Sender é um TObject, sendo que é a classe base de todos os componentes descendem deste. Também poderia ser feito utilizando o operador "as": (Sender as TBitBtn).Tag := Ord(not Boolean((Sender as TBitBtn).Tag))

3) Outra aplicação que faço uso é quando utilizo TreeNodes. Observe que além do texto que inserimos na Treeview, podemos armazenar dados associados a cada um deles. Afunção AddChildObject(Node: TTreeNode; const S: string; Ptr: Pointer) nos permite isto. Assim você pode associar objetos a cada item bastando passar o endereço do mesmo para a função no parâmetro Ptr. Então, ao utilizar a propriedade Selected (do TreeView), você poderá acessar a propriedade Data a qual contém o ponteiro passado na função e fazer um typecast dele para a classe que você adicionou.

Tenha em mente que os tipos, apesar de diferentes, são compatíveis entre si. Caso contrário, o risco de obter erros é grande.

Quanto ao seu segundo questionamento, não saberia responder (se ninguém responder, posso tentar verificar).

[]s

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...