CRIANDO OBJETOS EM TEMPO DE EXECUCAO

USUARIO.EXCLUIDOS 13/07/2005 18:27:53
#94006
Caros Colegas,
Preciso criar vários objetos em tempo de execução, porém preciso que fiquem com nomes
diferentes, no caso abaixo ( que encontrei aqui ) ele cria com o mesmo nome (Btn) gostaria de uma rotina que criasse por exemplo, Btn1, Btn2, Btn3......

Alguem tem alguma sugestão??

Obrigado.



Option Explicit
Dim WithEvents Btn As WebBrowser

Private Sub Command1_Click()

Set Btn = Me.Controls.Add("VB.CommandButton", "Teste")
Btn.Visible = True
Btn.Caption = "Me pressione"

End Sub
PAGANINI 13/07/2005 18:31:16
#94008
Faça assim

Set Btn1 = Me.Controls.Add("VB.CommandButton", "Teste")
Btn1.Visible = True
Btn1.Caption = "Me pressione"

Set Btn2 = Me.Controls.Add("VB.CommandButton", "Teste")
Btn2.Visible = True
Btn2.Caption = "Me pressione"

Set Btn3 = Me.Controls.Add("VB.CommandButton", "Teste")
Btn3.Visible = True
Btn3.Caption = "Me pressione"
USUARIO.EXCLUIDOS 14/07/2005 08:36:22
#94065
Sim, mas isto criaria somente três controles, a idéia é que cada vez que Command1_Click() um novo controle seja criado com nome diferente. Tipo assim: Cada vez que o usuario clica nesse botao cria um Btn + 1. tipo Btn1, Btn2, Btn3 .... até 30 se for o caso.

Alguma outra sugestão é bem vinda.
FABIO.ALEXANDRE 14/07/2005 08:51:25
#94068
Bom , c pode fazer como o Paganini postou e acrescentar uma variavel q aramazene o numero de objeto criados ou vc pode usar isso na tag do command


Dim var_objButom As Object

Private Sub Command1_Click()

Dim var_buttom As CommandButton

Set var_buttom = Me.Controls.Add("VB.CommandButton", "ButtomTeste" & Command1.Tag)
var_buttom.Visible = True
var_buttom.Caption = "Me pressione"
If Val(Command1.Tag) > 0 Then var_buttom.Left = var_objButom.Left + var_objButom.Width + 50
Set var_objButom = var_buttom
'MsgBox var_buttom.Name
Command1.Tag = Val(Command1.Tag) + 1

End Sub


ESPERO TER AJUDADO
PAGANINI 14/07/2005 08:54:24
#94069
Option Explicit
Dim Btn As New Collection
Private Sub Form_Load()
Randomize Timer
End Sub
Private Sub Command1_Click()
Static I As Long
I = I + 1
CriarBotao "Botao" & I, Time, Me.ScaleHeight * Rnd, Me.ScaleWidth * Rnd
End Sub
Sub CriarBotao(Nome As String, Texto As String, PosY As Single, PosX As Single)
Dim Botao As CommandButton
Set Botao = Me.Controls.Add("VB.CommandButton", Nome)
Botao.Caption = Texto
Botao.Top = PosY
Botao.Left = PosX
Botao.Visible = True
Btn.Add Botao, Nome
End Sub


Qualquer dúvida diferente é só postar
USUARIO.EXCLUIDOS 14/07/2005 09:25:14
#94077
PAGANINI, obrigado

fiquei com a sua opção, porém preciso saber agora, como posso atribuir função aos botoes criados, como Click(). Tentei colocar no codigo o seguinte:

Private Sub Botao1_Click()
Msgbox "TESTE"
End Sub

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