IDENTIFICAR FORM

NOME 08/10/2012 13:31:38
#411521
Caros Amigos

Criei um UserControl genético para ser usado em vários Forms. Mas não sei qual o comando que do VB6 que identifica em qual form o Usercontrol está sendo executado. Podem me ajudar?
KERPLUNK 08/10/2012 13:36:41
#411523
Amigo, é genérico e não genético hehehehe. Mas verifique a propriedade Parent, é possível que ela esteja disponível.
MARCELO.TREZE 08/10/2012 13:59:52
#411527
Você cruzou espermatozoide binário com um óvulo hexadecimal para criar o USERCONTROL rsrsrsrsrs....

brincadeiras a parte, porque vc deseja saber em qual form o usercontrol está sendo executado, uma vez que o usercontrol é como uma ocx e deve executar alguma função no form, este usercontrol fica invisivel?

NOME 08/10/2012 19:58:54
#411575
Pelo jeito devo estar falando um monte de bobagem! Bem, vivendo e aprendendo!

O objetivo aqui é criar um Skin, através de um UserControl. Mas criar somente um UserControl que possa ser usado em todas as Forms.

Por que?

Porque, há um código dentro do UserControl onde o Form pode ser movido ou redimensionado. Porém, neste código estão contidas instruções como, por exemplo, Form1.Width.

Assim, eu gostaria que o UserControl [Ô]soubesse[Ô] em qual Form ele está atuando, para não precisar criar um USerControl para cada Form.

Por outro lado, se houver uma opção melhor de crair Skins, peço que também comentem.
MARCELO.TREZE 09/10/2012 08:07:14
#411585
Eu não conheço uma forma de se fazer isso, particularmente uso o activeskin, e como o seu USERCONTROl o active skin tem que ser colocado em todos os forms, porém alguém aqui postou certa vez uma função que é colocada em um modulo, e com ela você coloca o activeskin em apenas um form depois a função insere nos demais.

veja

Public Sub AplicaSkin(ByVal vForm As Form, Optional ByVal vSkin As ACTIVESKINLibCtl.Skin)
Dim SkinFile As String
Dim Ctl As Control
Dim sIndex As String
On Error Resume Next
SkinFile = App.Path & [Ô]\skins\Xtreme vista.skn[Ô]
For Each Ctl In vForm
Next Ctl
DoEvents
If sIndex = [Ô][Ô] Then Set vSkin = frmprincipal.Skin1
If SkinFile <> [Ô][Ô] Then vSkin.LoadSkin SkinFile
vSkin.ApplySkin vForm.hWnd
For Each Ctl In vForm.Controls
If TypeOf Ctl Is ComboBox Then
vSkin.ApplySkinByName Ctl.hWnd, [Ô]ComboBox[Ô]
End If
Next
If Err Then Err.Clear
End Sub


com a função acima coloco o activeskin apenas no frmprincipal, nos demais forms aplico o skin assim

AplicaSkin Me

CAIOHSZA 09/10/2012 09:54:21
#411600
Citação:

:
Você cruzou espermatozoide binário com um óvulo hexadecimal para criar o USERCONTROL rsrsrsrsrs....




KKKKKKKKKKKKKKKKKKKKK
VELDRAME 09/10/2012 10:08:10
#411607
Na função redimensionar do seu UserControl, imagino, que ele receba parametros.

Exemplo: Sub Redimencionar(ByVal form As Object)

No evento resize do seu form tente isso:
Private Sub form_Resize()
Call UserControl.redimencionar(Me.Name) [txt-color=#007100] [ô]Aqui você esta chamando a função [Ô]Redimencionar[Ô] do seu componente e passando o Nome do Formulário.[/txt-color]
End Sub
MARCELO.TREZE 09/10/2012 10:14:17
#411610
Na realidade o usercontrol não é meu é uma ocx de terceiros ACTIVESKIN, a função redimensionar está dentro da mesma, não sei como funciona.

você já ouviu falar desta ocx,? inclusive já existem varios mais varios skins já criados para ela.

Tópico encerrado , respostas não são mais permitidas