CRIANDO UM MODULO PARA O ACTIVESKIN

 Tópico anterior Próximo tópico Novo tópico

CRIANDO UM MODULO PARA O ACTIVESKIN

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#373115 - 03/05/2011 16:13:59

DANLEONHART
NATAL
Cadast. em:Setembro/2010


Pessoal...

Estou querendo adaptar este script para uma Funo em um Mdulo...para assim ao aplicar em um Formulrio sejam aplicados em todos...
Gostaria de deixar apenas em uma Funo...pois hoje utilizo ele assim:

No Modulo

Public Function SkinConfig()
    [] Configurando O ActiveSkin
Set Fil = FSO.OpenTextFile(App.Path & []\INI\Config.Dat[], ForReading, True)
SkinConfig = Fil.ReadLine
Fil.Close
End Function


Ento coloco no Load dos Form[]s:

Skin1.LoadSkin SkinConfig
Skin1.ApplySkin Me.hWnd


Gostaria de deixar tudo isso no script do Modulo, para ser colocado apenas no Load a funo...tipo assim:

SkinConfig(Form1)


mas no consegu fazer...tentei criando um objeto do ActiveSkin no Modulo:

Public Function SkinConfig(Frm As Form)
On Error Resume Next
[] Configurando o ActiveSkin

Set Fil = FSO.OpenTextFile(App.Path & []\ConfSkin\Stats.txt[], ForReading, True)
SkinConfig = Fil.ReadLine

Fil.Close

Dim vSk As ACTIVESKINLibCtl.Skin

vSk.LoadSkin SkinConfig
vSk.ApplySkin Frm.hWnd

End Function


Para assim colocar no Form_Load somente:

SkinConfig(Form1)


Sempre aparece o erro 13 (Type Mismatch)...
onde estou errando ?

Danleonhart

Resposta escolhida #373121 - 03/05/2011 16:32:12

ROBIU
CANDEIAS
Cadast. em:Julho/2004


Tenta assim:

Public Function SkinConfig(Frm As Form, vSk As Skin)
On Error Resume Next
[] Configurando o ActiveSkin
Dim CaminhoSkin As String
Set Fil = FSO.OpenTextFile(App.Path & []\ConfSkin\Stats.txt[], ForReading, True)
CaminhoSkin = Fil.ReadLine

Fil.Close

vSk.LoadSkin CaminhoSkin
vSk.ApplySkin Frm.hwnd

End Function





no Form:
SkinConfig(Form1,Skin1)





Roberto Martins

#373124 - 03/05/2011 16:53:18

MARCELO-TREZE
SAO VICENTE
Cadast. em:Abril/2009


Última edição em 03/05/2011 16:57:25 por MARCELO-TREZE

olha como fao

em um mdulo:

[]funo para aplicar skin em todos forms do projeto
Public Sub AplicaSkin(ByVal vForm As Form, Optional ByVal vSkin As ACTIVESKINLibCtl.Skin, Optional ByVal SkinFile As String)
Dim Ctl As Control
Dim sIndex As String
On Error Resume Next
For Each Ctl In vForm
Next Ctl
DoEvents
If sIndex = [][] Then Set vSkin = Form1.Skin1 []<---aqui vc vai apontar o form principal que ter o objeto skin1
If SkinFile <> [][] Then vSkin.LoadSkin SkinFile
vSkin.ApplySkin vForm.hWnd
If Err Then Err.Clear
End Sub


agora no form principal, no meu caso form1  coloque o componente activeskin, e cole o cdigo


Private Sub Form_Activate()
AplicaSkin Me, Skin1, []C:\SeusSkins\le-black.skn[]
End Sub


preste ateno somente no form principal ser colocado da forma acima, nos demais forms basta colocar desta forma:

Private Sub Form_Activate()
AplicaSkin Me
End Sub


ps: Basta vc colocar o componente active skin no form principal, nos demais ser criado uma instancia dele, no precisa colocar o componente.


________________________________________________________________________________________
O orgulho cega at os sbios, ao ponto de no percebam que no so to sbios como pensam.



#373126 - 03/05/2011 16:58:09

DANLEONHART
NATAL
Cadast. em:Setembro/2010


Última edição em 03/05/2011 17:00:00 por DANLEONHART

Caraca ... coisa to simples

Obrigado tambm Marcelo ! ser til futuramente

VALEU Robiu !

Danleonhart

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por DANLEONHART em 03/05/2011 17:21:39