CRIAR VARIOS OBJETOS VIA CODIGO UTILIZANDO VETORES
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?
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?
ACCIOLLY, bom dia!
Sua logica está errada.
a variavel f sempre será text2
Deveria ser assim:
Outra coisa:
Isso colocara os novos comandos sempre no mesmo lugar. Pois o código For d = 1 To e na pratica num faz nada.
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.
Tem um exemplo q postei, talvez possa ajudar:
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=331098
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=331098
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
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
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
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
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!
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