TAO SIMPLES E NAO FUNCIONA. POR QUE?
Bom, vou deixar com os colégas ai do fórum pois não conheço VB6, mas , ao meu ver, seu código devia funcionar normalmente.
Desculpa não poder ajudar.
Att,
Lucas
Desculpa não poder ajudar.
Att,
Lucas
Então é isso:
Private Sub Command1_Click()
AlterarTexto Text1
End Sub
Public Sub AlterarTexto(Txt As TextBox)
Txt.Text = [Ô]VbMania[Ô]
Txt.Font.Bold = True
Txt.Alignment = 1
Txt.BackColor = vbCyan
Txt.BorderStyle = 1
Txt.Width = 3000
End Sub
bom,
Debugando seu codigo posso dizer nao se pode associar uma propriedade de um objeto como referencia.
E necessario ter uma variavel so para isso ou associar o objeto todo.
Referencia a uma variavel direta e nao a propriedade
Debugando seu codigo posso dizer nao se pode associar uma propriedade de um objeto como referencia.
E necessario ter uma variavel so para isso ou associar o objeto todo.
Private Sub Command1_Click()
AlterarTexto Text1
End Sub
Public Sub AlterarTexto(ByRef Txt As Object)
Txt = [Ô]abc[Ô]
End Sub
Referencia a uma variavel direta e nao a propriedade
Private Sub Command1_Click()
Dim txt As String
AlterarTexto txt
Text1.Text = txt
End Sub
Public Sub AlterarTexto(ByRef txt As String)
txt = [Ô]abc[Ô]
End Sub
Citação::
Deixa ver se eu entendi, você quer alterar o conteúdo do Textbox ou do label do botão???
O problema é tão simples que todos aqui estão confusos.
Apenas quero alterar a prop. Text do Textbox passando-a como parâmetro para outro sub.
Não há nada de excepcional. Muito simples, mas não funciona. O que voces mostraram aqui são quebra-galhos para contornar essa falha ABSURDA do compilador do VB6.
Ou então, eu estou esquecendo de alguma coisa.
eu vou ter de dizer que o código está [Ô]certo[Ô], ou seja a lógica que está errada
pelo que eu entendi vc gostaria de preencher a text1 com a string [Ô]ABC[Ô], é isso? se for te explicarei o que está errado
pelo que eu entendi vc gostaria de preencher a text1 com a string [Ô]ABC[Ô], é isso? se for te explicarei o que está errado
Citação:Debugando seu codigo posso dizer nao se pode associar uma propriedade de um objeto como referencia. E necessario ter uma variavel so para isso ou associar o objeto todo.
Só se for no VB6. Estou cansado de fazer isso em linguagens até mais antigas.
Além disso, veja esse teste:
Private Sub Command1_Click()
Text1.Text = [Ô]xyz[Ô] [ô]<--- coloca valor [Ô]xyz[Ô] em Text1.Text antes de chamar a alteração
AlterarTexto Text1.Text
End Sub
Public Sub AlterarTexto(ByRef Txt As String)
MsgBox Txt [ô]<--- mostra o valor da propriedade Text passada como parâmetro. Aparecerá [Ô]xyz[Ô]
Txt = [Ô]abc[Ô]
End Sub
O fato de aparecer [Ô]xyz[Ô] significa que o compilador TEM como manipular a propriedade passada para o sub, mas ele NÃO faz isso.
Entende o problema?
Citação::
eu vou ter de dizer que o código está [Ô]certo[Ô], ou seja a lógica que está errada
pelo que eu entendi vc gostaria de preencher a text1 com a string [Ô]ABC[Ô], é isso? se for te explicarei o que está errado
Olá, Marcelo.
O que eu preciso é muito simples: passar uma propriedade Text (seja de um Textbox, de um RichText, etc.) e alterá-la em outro sub, conforme alguma lógica dentro desse outro sub.
Um exemplo concreto: um sub lê um arquivo texto e retorna o conteúdo do arq. no parâmetro Txt.
Algo asim:
Public Sub LerArqTexto(NomeArq As String, ByRef Txt As String)
Eu gostaria de fazer o seguinte em algum outro lugar do código:
LerArqText([Ô]C:\DADOS\DOCUMENTO.TXT[Ô], RichTextBox.Text)
Claro que existem várias outras formas de fazer isso, mas não dá prá aceitar que o VB6 não execute essa lógica.
Ela é muito básica.
Citação::
bom,
Debugando seu codigo posso dizer nao se pode associar uma propriedade de um objeto como referencia.
E necessario ter uma variavel so para isso ou associar o objeto todo.
Private Sub Command1_Click()
AlterarTexto Text1
End Sub
Public Sub AlterarTexto(ByRef Txt As Object)
Txt = [Ô]abc[Ô]
End Sub
Referencia a uma variavel direta e nao a propriedade
Private Sub Command1_Click()
Dim txt As String
AlterarTexto txt
Text1.Text = txt
End Sub
Public Sub AlterarTexto(ByRef txt As String)
txt = [Ô]abc[Ô]
End Sub
leu isso ?
Citação:
Referencia a uma variavel direta e nao a propriedade
Private Sub Command1_Click()
Dim txt As String
AlterarTexto txt
Text1.Text = txt
End Sub
Public Sub AlterarTexto(ByRef txt As String)
txt = [Ô]abc[Ô]
End Sub
leu isso ?
Sim, mas muito feio, concorda? Tenho a prop. disponÃvel e sou obrigado a criar uma outra variável.
O pior é que o compilador TEM o valor da prop. dentro do sub AlterarTexto, mas não a altera (chegou a ver uma de minhas mensagens acima?)
Isso é mais feio ainda.
olha, se olhar o lado logico, uma propriedade e uma função GET, que dentro dessa funcao tem uma variavel.
Olhando dessa forma a referencia fica em cima da função e nao em cima da variavel privada dentro da propriedade.
Por isso que uma referencia nao funciona em cima de uma propriedade, nao sei se em java ou outra linguagem isso e possivel e o compilador consegue interpertar que na verdade vc quer fazer uma referencia a propriedade (funcao get) e ter ao endereço de memoria da variavel privada dentro desta função.
Se isso fosse prossivel, para que usar propriedades se é possivel associar diretamente a variavel dentro da propriedade.
Vejo isso como segurança!
Por isso associamos o objeto como referencia!
Olhando dessa forma a referencia fica em cima da função e nao em cima da variavel privada dentro da propriedade.
Por isso que uma referencia nao funciona em cima de uma propriedade, nao sei se em java ou outra linguagem isso e possivel e o compilador consegue interpertar que na verdade vc quer fazer uma referencia a propriedade (funcao get) e ter ao endereço de memoria da variavel privada dentro desta função.
Se isso fosse prossivel, para que usar propriedades se é possivel associar diretamente a variavel dentro da propriedade.
Vejo isso como segurança!
Por isso associamos o objeto como referencia!
Tópico encerrado , respostas não são mais permitidas