USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  COMO ADICIONAR VIA CODIGOS NOVOS TEXTBOX
léee
OURINHOS
SP - BRASIL
Postada em 29/11/2004 17:56 hs            
Pessoal, tudo bem?

Vamos supor que em um formulário tenha um CommandButton, e como vc's fariam para no  evento Click, adicionar um TextBox, no Formulário?

Sem Mais

Nós somos uma família VBWEB, só prosperamos neste ambiente sensato. Meus votos de Felicidade à todos.
     
Sandro
não registrado
ENUNCIADA !
Postada em 29/11/2004 22:51 hs   
Olá Léee,
 
Você pode usar a coleção Controls do VB. Para isso, declare uma variável que ira conter a referência ao novo controle:
 
Dim WithEvents ctlText As VB.TextBox
 
No evento click do seu botão, digite o seguinte:
 
Private Sub Command1_Click()
    Set ctlText = Controls.Add("VB.TextBox", "ctlText1", Form1)
    ctlText.Move 100, 100
    ctlText.Visible = True
End Sub
 
'Agora você terá que codificar os eventos manualmente, ou seja, digitar toda a declaração do evento, com seus parâmetros, se houverem:
Private Sub ctlText_Change()
     MsgBox "oi"
End Sub
 
Pronto, agora você já pode criar controles dinamicamente.
 
Ah, uma coisa, há algum tempo você me mandou um email sobre um problema que você teve com Options. Você recebeu a minha resposta? Como você não respondeu, fiquei sem saber o que houve. Neste email eu informava que o problema estava na linha que desmarcava a option, e recomendei que você colocasse o código de chamada a procedure dentro do evento MouseUp. Bem, se tiver mais algum problema, post, ok?
 
Um abraço,
Sandro.
   
léee
OURINHOS
SP - BRASIL
ENUNCIADA !
Postada em 30/11/2004 02:43 hs            
Oi, Sandro, tudo bem ?

Eu, envie um e-mail de retorno acho que nao chegou então, cara gostei da sua aula, vc sabe mesmo das coisas. Então aqui vai o meu "Muito Obrigado". Mas eu estive meu doente, e comecei a usa-lo de novo. E já tive uns contra-tempo de novo.
Mas me conta aqueles parâmetros dos comandos "SendMessage" ou "PostMessage", onde será que eu posso achar ?

Agora, vamos ao que vc me postou: Dim WithEvents ctlText As VB.TextBox

Estes "WithEvents ctlText" , sao 2 palavrinhas para um mesmo nome de variavél ?
A propriedade Caption é ctlText1 ? Isto na criaçao ( está dentro do procedure Click do CommandButton.

Outro Abraço, Gente Boa.

Nós somos uma família VBWEB, só prosperamos neste ambiente sensato. Meus votos de Felicidade à todos.
   
Sandro
não registrado
ENUNCIADA !
Postada em 30/11/2004 23:11 hs   
Fala Léee,
 
A cláusula WithEvents significa que queremos que o VB nos retorne os eventos de um objeto. Quando não usamos esta cláusula, qualquer coisa que aconteça no objeto nós não somos notificados, ou seja, o Vb não nos dará acesso ao evento correspondente. Você pode usar esta cláusula para fazer referência, por exemplo, a um formulário qualquer e ter possibilidade de, de outro ponto do programa executar alguma ação assim que um evento naquele formulário acontecer. Isso é muito usado em classes que retornam eventos para outras classes, mas isso é outra história...
Voltando às suas perguntas, ctlText é um nome que eu dei para uma variável que irá referenciar o novo TextBox que você quer criar. Você perguntou se o nome do novo Text seria ctlText1; não, o nome será ctlText mesmo. Cada variável será um único objeto.
Quanto ao SendMessage e PostMessage, cara isso é complicado, pois essas APIs do Windows são usadas para enviar mensagens, ou seja, notificar objetos quaisquer de eventos que aconteceram ou que estão sendo "simulados" pelo programa. Acontece que cada controle pode receber tipos diferentes de mensagens (os parâmetros) e isso não tem muita lógica, pois quando se cria um componente (principalmente em C), não se tem qualquer obrigação de seguir as regras de parâmetros de outros componentes. Resumindo, varia para caramba. O que você quer fazer exatamente? Dependendo do que for eu tento te ajudar.
 
Um abraço,
Sandro. 
   
léee
OURINHOS
SP - BRASIL
ENUNCIADA !
Postada em 01/12/2004 17:16 hs            
Tudo bem, Sandro?

era aquela historia de simular um clique no CommandButton sem clica-lo. Queria apreender isto.
Desculpa pela demora, mas estou com virus na maquina. E custou para retirar o danado daqui. Vou ter que instalar ate o VB.

E voltando para a questao original, se fosse bastante TextBox a criar. Teria de colocar a declaraçao numa matriz assim:

Dim WithEvents ctlText(x) As VB.TextBox    'x esta no lugar de um numero

No evento click do seu botão, digitaria o assim ( tá certo ? ):

Private Sub Command1_Click()
    Set ctlText(x) = Controls.Add("VB.TextBox", "ctlText1", Form1)
    ctlText(x).Move (100+x*500), 100  'hipoteticamente assim fica afastado um do outro
    ctlText(x).Visible = True
End Sub

o "x" define qual é a variavel ?

Private Sub ctlText(x)_Change()
     MsgBox "oi"
End Sub

Outro abraço.

Nós somos uma família VBWEB, só prosperamos neste ambiente sensato. Meus votos de Felicidade à todos.
   
claytonsantos
OSASCO
SP - BRASIL
Postada em 01/12/2004 17:38 hs            
TB Leee,

Bom para você adicionar uma nova text com apenas um clique funciona da seguinte maneira...
1º o form tem que conter uma text(0) - index

adicionar novas texts

For I = 1 to 5

'comando para criar as texts
Load text(I)

'este comando é para as novas texts não ser criadas no mesmo local
text(i).top = text(i).top+text(i-1).top

next i

Falou até +,
     
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página