1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

VB6

Discussão em 'Programação' iniciada por tita154, 21 de Abril de 2007. (Respostas: 7; Visualizações: 744)

  1. Há alguma maneira de o utilizador poder adicionar elementos ele próprio?
    Do género, ao clique de um botão, adiciona uma Label com caption defenida pelo utilizador numa textbox. E kem diz Label diz ListBox.
     
  2. MRKawa600

    MRKawa600 Power Member

    Sim através do uso de arrays de controlos. Por exemplo tens uma label chamada lblArray, colocas o index do controlo em = 0, depois quando clicas no botão.

    Me.Controls.Add(Me.lblArray)

    O que te irá criar uma nova label (com index = 1)

    È isto!
     
    Última edição: 22 de Abril de 2007
  3. Mas aí não terei de pôr um array por cada Label a ser criada?

    O objectivo é ter a possibilidade de um nº infinito de labels (teoricamente claro).
     
  4. MRKawa600

    MRKawa600 Power Member

    Não, basta existir uma (que por acaso até podia ser criada por código,tb).

    Cada vez que evocares o add da label definida como array, irás criar uma nova label para esse mesmo array, ou seja, se tinhas essa label uma vez no form, ao fazeres add, ficas com duas labels no form, as duas tem o mesmo "name" mas "index" diferente.

    Existe um limite no tamanho do array (não me lembro qual é agora, acho que o index é integer, por isso 32mil...), deve chegar para o que precisas . :)
     
  5. 32mil? hmmm......deixa-me ver.......acho k serve. :P
    Brigadão.

    Já agora, como é k fica o código do botão? (ainda não estou muito dentro dessa matéria)
     
    Última edição: 22 de Abril de 2007
  6. Still waiting.....
     
  7. MRKawa600

    MRKawa600 Power Member

    Exemplo sem usar arrays.

    Para um form com:
    1 button - cmdCriarLabel
    1 TextBox -txtbxTexto


    Option Explicit

    Dim ctlNew As Control
    Dim iLblNumber As Integer

    Private Sub cmdCriarLabel_Click()
    'para poder criar uma label com um name diferente, cada vez que clicares no botão
    iLblNumber = iLblNumber + 1
    'criar o novo controlo
    Set ctlNew = Me.Controls.Add("VB.Label", "lblNew" + CStr(iLblNumber), Me)
    'atribuir o caption em função do que está na textbox
    ctlNew.Caption = txtbxTexto.Text
    'Colocar aqui código para reposicionar a nova label

    'por o controlo visível
    ctlNew.Visible = True
    End Sub
     
  8. Tx. Ajudou muito.
     

Partilhar esta Página