CLASSE COM OBJETO FORM

LOOZE 28/11/2006 08:41:38
#186685
Bom dia....
Estou com esta função em um modulo, ela funciona perfeitamente., o que eu desejo fazer é coloca-la em uma classe e compilar gerando assim uma dll de todas minhas funções,.. o proplema é esta função que não aceita tipo de objeto na classe. Como poderia funcionar na classe?

Ele retorna erro na (f as Form), pois ele não aceita que seja o nome do objeto, tentei mudar para object mais não consegui chamar a função.

Public Sub CentraNaTela(f As Form)
With f
If f.WindowState = vbNormal Then
If f.MDIChild = True Then 'se for "filho" do principal
.Left = (Mdi_Capa.Width / 2) - (f.Width / 2)
.Top = ((Mdi_Capa.Height / 2) - (f.Height / 2)) - 300 'titlebar
Else
.Top = (Screen.Height - f.Height) / 2 'caso contrário,
.Left = (Screen.Width - f.Width) / 2 'centraliza na tela
End If
End If
End With
End Sub

Public Sub Resize_Form(ByRef MDI As Form, ByRef myForm As Form, vHeight As Integer, vWidth As Integer)
myForm.Width = vWidth
myForm.Height = vHeight
myForm.Left = (MDI.Width / 2) - (myForm.Width / 2)
myForm.Top = ((MDI.Height / 2) - (myForm.Height / 2)) - 300
myForm.Width = vWidth
myForm.Height = vHeight
End Sub


USUARIO.EXCLUIDOS 28/11/2006 08:48:18
#186688
tem que ser as Object mesmo.
ai vc passa o form por parà¢metro sem problemas...

Public Sub CentraNaTela(f As Object)
With f
If f.WindowState = vbNormal Then
If f.MDIChild = True Then 'se for "filho" do principal
.Left = (Mdi_Capa.Width / 2) - (f.Width / 2)
.Top = ((Mdi_Capa.Height / 2) - (f.Height / 2)) - 300 'titlebar
Else
.Top = (Screen.Height - f.Height) / 2 'caso contrário,
.Left = (Screen.Width - f.Width) / 2 'centraliza na tela
End If
End If
End With
End Sub



O que aconteceu quando vc tento chamar a função colocando como as Object??
HUGOSSOUZA 28/11/2006 08:49:36
#186690
você não consegue definir como "as object" no seu modulo ou qdo vc vai compilar a dll?
eu fiz assim aqui e funcionou normal...

Public Sub CentraNaTela(f As Object)
With f
If f.WindowState = vbNormal Then
If f.MDIChild = True Then 'se for "filho" do principal
.Left = (Mdi_Capa.Width / 2) - (f.Width / 2)
.Top = ((Mdi_Capa.Height / 2) - (f.Height / 2)) - 300 'titlebar
Else
.Top = (Screen.Height - f.Height) / 2 'caso contrário,
.Left = (Screen.Width - f.Width) / 2 'centraliza na tela
End If
End If
End With
End Sub

LOOZE 28/11/2006 11:39:55
#186733
como ficaria pra chamar a função, pois tentei da mesma forma que estava no modulo e da objeto requerido...

faço assim pra chamar a func.
centranatela me

ele até compila como object, mais não consegui chamar a função.
HUGOSSOUZA 28/11/2006 12:06:29
#186741
tenta passar o nome do form

centranatela nomeform


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