|
Postada em 02/02/2005 16:24 hs
Estou tentando fazer com que minha aplicação preencha uma combobox com os nomes de todos os formulários do meu sistema. Já tentei usar a seguinte expressão: Dim Formulario as Form For Each Formulario in Forms Combo.Additem Formulario Next Formulario ...Mas aparentemente o VB só pega o nome dos formulários que estão carregados. Pra ser mais eficaz, minha instrução deveria preencher a combo com o nome de todos os formulários, independente se eles estão carregados ou não. Existe uma maneira de fazer isso? Muito obrigado.
|
|
|
|
|
Postada em 02/02/2005 21:15 hs
Olá Manigni, Infelizmente não há como fazer isso que você quer, pois o VB não fornece nenhum controle ou objeto, ou mesmo função que retorne todos os formulários do projeto em run-time. Você deverá manter uma lista de seus formulários manualmente através de uma tabela que será carregada para a sua ComboBox. A coleção Forms somente representa os formulários que estão carregados em memória, os demais não são reconhecidos.
|
|
|
|
Postada em 03/02/2005 08:11 hs
não sei se serve para você, mas funciona ... Private Sub Command1_Click() Screen.MousePointer = vbHourglass 'informe a pasta onde estão os formulários do teu projeto 'é uma rotina recursiva, por isso, ela vai procurar nas subpastas também subPegaArquivos "U:Meus DocumentosProgramaçãoVisual BasicProjetos" Screen.MousePointer = vbNormal MsgBox "Ok" End Sub Private Sub subPegaArquivos(strPastaOrigem As String) 'Cria instância do FSO Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolderOrigem = objFSO.GetFolder(strPastaOrigem) Set objFoldersSubOrig = objFolderOrigem.SubFolders 'Para cada pasta na coleção de subpastas da pasta origem For Each objFolder In objFoldersSubOrig 'Chama recursivo enquanto tiver subpasta subPegaArquivos objFolder.Path 'Para cada arquivo na coleção de arquivos da pasta For Each objFile In objFolder.Files 'Verifica se o arquivo encontrado é do tipo FRM If ((LCase(Right(objFile.Path, 3))) = "frm") Then 'Atualiza RichTextBox -> lista arquivos processados Combo1.AddItem objFile.Name Me.Refresh End If Next Next End Sub
|
|
|
|
Postada em 03/02/2005 15:34 hs
Private Sub Form_Load() Dim frm As Form For Each frm In Forms Combo1.AddItem frm.Name Next End Sub
|
|
|
Korn
|
SAO PAULO SP - BRASIL
|
|
Postada em 03/02/2005 17:41 hs
Manigni, desculpa entrar no seu topico pra fazer uma pergunta tamen , so to aproveitando o topico ja aberto, sobre um mesmo assunto , sera que tem como eu receber dados de um form atraves do combo, gostaria de ler o Nome de Proprietario que esta em outro form atraves do Combo ja tentei varias coisas como colocar isso no combo Combo1.AddItem = FrmProprietarios.Bdimobiliaria.Nome colocar isso em um botao FrmProprietarios.txtproprietario.Text = FrmApartamentos.Combo1.Text e nada galera, COMO POSSO FAZER?
Jesus Cristo é O Senhor!!!
|
|
|
|
Postada em 03/02/2005 20:26 hs
Naum tem problema quanto ao aproveitar o tópico naum... Deixa eu te fazer uma pergunta: O formulário que contém os dados está aberto no momento em que vc tenta "puxar" esses dados dele né? Se SIM, bastaria vc fazer + ou - como vc escreveu... imagino que Bdimobiliaria é uma TextBox, e o comando "additem" não tem o sinal "=", entaum ficaria: Combo1.AddItem FrmProprietarios.Bdimobiliaria.Text T+
|
|
|