EXECUCAO DE FORMS SEM NOMES DEFINIDOS.

USUARIO.EXCLUIDOS 08/06/2004 14:52:54
#28791
Alguem poderia me ajudar..
vou dar um exemplo primeiro

imaginem que tenho 3 forms
em um form tenho um list com os nomes dos forms 2, 3

Quando ele clicar no form2 por exemplo, quero atribuir este nome a um objeto e carregar este form..

exemplo:
Dim x as string
x = "Form2"
como faco pra chamar o form 2 usando a varivel x, ou seja atribuir o x em um objeto form e fazer show deste objeto


Obrigado
USUARIO.EXCLUIDOS 08/06/2004 14:56:18
#28792
Resposta escolhida
o que voce consegue eh algo como

Public Sub AbrirFormulario(Byval NomeFormulario as string)
dim Frm as Form

select case ucase(NomeFormulario)
Case "FORM1"
set frm = form1
case "FORM2"
set frm = form2
case "FORM3"
set frm = form3
end select
frm.caption = "Titulo de Formulario"
frm.show
end sub

USUARIO.EXCLUIDOS 08/06/2004 15:17:55
#28800
entao talvez o que voce possa fazer é colocar todos os objetos cadastrados dentro de uma collection...
na hora de adicionar na collection voce coloca associado ao key

collection1.add Formulario1, KeyFormulario
collection1.add Classe2, keyClasse2

e na hora de fazer a chamada voce coloca algo como
dim Obj as Objecto
dim x as string
x= KeyFormulario
set obj = Collection1(x)
obj.show
USUARIO.EXCLUIDOS 08/06/2004 15:35:48
#28804
isto seria semelhante ao select case, imagino eu...

soh que ao inves de fazer um select, seria necessario um loop
USUARIO.EXCLUIDOS 08/06/2004 15:52:43
#28812
Public Sub AbrirFormulario(Byval NomeFormulario as string)
dim Frm as Form

select case ucase(NomeFormulario)
Case "FORM1"
set frm = new form1
case "FORM2"
set frm = new form2
case "FORM3"
set frm = new form3
end select
frm.caption = "Titulo de Formulario"
frm.show
end sub

na verdade td depende da keyword new - se voce usar, voce abre um novo - soh depende do que voce precisa...

soh vejo um problema para a solucao com loop...
ele diz ter um form com um list onde estao os forms - se ele alimenta o list e fecha o form ou se alimenta o list manualmente, na hora de rodar o loop, nao vai encontrar o que procura - o Forms só armazena akeles forms carregados...
Tópico encerrado , respostas não são mais permitidas