CRIAR VARIOS OBJETOS VIA CODIGO UTILIZANDO VETORES

ACCIOLLY 19/05/2013 03:06:34
#423720
bom dia pessoal!
estou rachando a cuca aki em casa! rsrsrsrs.
o negócio é o seguinte, eu consegui criar um textbox através do código:

Me.Controls.Add [Ô]vb.textbox[Ô], [Ô]text1[Ô]

mas como faço pra criar mais do que um textbox utilizando vetores? estou tentando dessa forma:

Option Explicit
Private WithEvents Text As Textbox

Private Sub Command1_Click()

Dim c As Integer
Dim d As Integer
Dim e As Integer
Dim f As String

e = 4

For c = 1 To e
f = [Ô]text[Ô] & 1 + Val(1)
For d = 1 To e
Set Textbox = Me.Controls.Add([Ô]vb.textbox[Ô], f)
With Textbox
.Visible = True
.Width = 2050
.Left = 6360
.Top = 1320 + 480
End With
Next d
Next c

End Sub


Aqui quando eu pressionar o botão command1 seriam criados 4 textbox com propriedade name diferenciada pelo número. mas quando o código é executado, dá erro 727, ou seja, ele criou o primeiro objeto mas no momento que criou o segundo deu erro que o objeto já era existente. isso significa que depois do text2 não foi criado o text3, mas o mesmo text2.

alguém aí tem alguma idéia de com eu melhorar isso?
SAMUKA 20/05/2013 08:04:02
#423734
ACCIOLLY, bom dia!

Sua logica está errada.
f = [Ô]text[Ô] & 1 + Val(1)


a variavel f sempre será text2

Deveria ser assim:
f = [Ô]text[Ô] & c


Outra coisa:
.Top = 1320 + 480


Isso colocara os novos comandos sempre no mesmo lugar. Pois o código For d = 1 To e na pratica num faz nada.
IRENKO 20/05/2013 10:20:02
#423744
Tem um exemplo q postei, talvez possa ajudar:

http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=331098
ACCIOLLY 22/05/2013 10:58:48
#423839
obrigado pela ajuda irenko
mas qcho q o que eu quero é complicado demais! kkkkkkkkkk
o que eu pretendia fazer é que a aplicação localize strings numa textbox por exemplo:
essas strings tem q começar com o sinal de @ e ler mais 4 caracteres depois desse sinal
Então o programa tem que localizar todas esses strings para criar novos textbox para colocar os dados corretos e substituir na textbox original. ou seja, se na textbox original estiver escrito:

Nome: @nome
Endereço: @ende

o programa localizaria as duas strings e criaria duas textbox com esses nomes respectivamente. então colocaria um comando pra localizar e substituir q nem no word.

por q isso?
pra ter mais agilidade!
num programa de ultrassom por exemplo: existem vários tipos de ultrassom. se não me engano tem mais de 50.
ao invés de criar um formulário pra cada tipo de ultrassom, poderia criar um formulário onde o laudo de ultrassom seria carregado pelo banco de dados. e cada laudo gravado no banco de dados terá essas strings para localizar e subtituir depois.


complicado né
rsrsrsrs
vou rachar a cuca mais um pouco se eu conseguir eu posto pra comunidade!
senão vai ser o jeito criar formulário por formulário! rsrsrs
MARCELO.TREZE 22/05/2013 17:21:53
#423890
Resposta escolhida
ja tentou colocar um textbox com a propriedade index =0 e chamar os demais por ele assim:

coloque um textbox no seu form, mude a propriedade index para 0 (zero)

e chame os demais textbox assim

load Text1(1)
Text1(1).top = valor desejado
Text1(1).left = valor desejado
Text1(1).visible = true

exemplo para se criar 10 textbox a partir do primeiro

Private Sub Command1_Click()
For F = 1 To 10
Load Text1(F)
Text1(F).Top = Text1(F - 1).Top + 385
Text1(F).Left = Text1(F - 1).Left
Text1(F).Visible = True
Next F
End Sub



ACCIOLLY 23/05/2013 17:32:08
#423957
Caro Marcelo-13 Valeu pela dica era exatamente disso q eu estava falando kara!
show de bola!

ainda faltam mais uns acertos aki no meu projeto mas por agora
encerro o tópico por aki

grande abraço!
Tópico encerrado , respostas não são mais permitidas