SOBRE OCX. PARA COLEGAS CRIATIVOS !

MARCOS 18/12/2003 12:21:04
#1510
Ola!
Estou com dois daqueles,tipos de problema,que exigem "criatividade" ,para
resolver.Sempre tento ser criativo,mas neste caso,nao consegui:


1.) Acabei de fazer uma OCX.Funciona perfeito! Mas,ela precisa de um
recurso,que nao sei como implementar. Ao ser adicionada,a um projeto
em VB,ela evidentemente ficara num formulario qualquer.A pergunta,e
como posso fazer para que A OCX,"saiba" o nome do formulario onde
ela foi inserida ???

Eu tentei : Nome_formulario= Me.Name

Mas,o resultado e o nome do propio user control


2.) Eu criei um procedimento,na OCX,que deve ser executado ,sempre que
o formulario ( onde a ocx esta ),seja aberto ou receba foco.Tentei colocar
este procedimento,no evento " Initialize " do usercontrol.Mas,infelizmente
descobri,que este evento e disparado,logo que eu adiciono,a OCX,num
projeto .Mesmo sem executar o projeto !!!!!!!
Existe algum modo,de fazer o meu procedimento,ser disparado,somente
no momento em que o programa,onde a OCX esta seja executado?


Agradeco qualquer ajuda!

LCSD 18/12/2003 13:03:31
#1518
Resposta escolhida
Marcos

2) Para identificar o Modo em que está atualmente um Activex utilize:

Ambient.UserMode = True - ambiente de Usuário

Ambient.UserMode = False - ambiente de Desenvolvimento.

LCSD 19/12/2003 10:59:01
#1724
Marcos

Quando se trabalha com o Initialize nem todas as Propriedades do Componentes estão disponíveis, por isto pode estar dando problemas. [S26]

Se possível coloque o Código que necessita aqui.

Uma forma boa de se trabalhar com o UserMode ou qualquer outra Função Booleana é a demonstrada abaixo

If UserControl.Ambient.UserMode Then
..............
..............
Else
..............
..............
Endif

No seu caso acima o Select Case não está errado mas o If fica de mais fácil entendimento. [S25]

Ainda o ME dentro do código do UserControl te retorna o nome do UserControl e não do Form.
Tópico encerrado , respostas não são mais permitidas