Ir para conteúdo
Fórum Script Brasil
  • 0

Combobox


Angelo Augusto

Pergunta

Amigos,

Gostaria de saber de vocês se tem algum jeito de fazer que quando a combobox receber alguns textos

ela fique do tamanho dos textos.Sem que eu tenha que colocar o tamanho dela manualmente!

tipo assim,

|combo aqui| --> aqui o tamanho normal da combo

|texto texto texto texto texto texto texto texto texto texto texto| --> aqui o tamanho que a caixa de resultados dela deve ficar

|texto texto texto texto texto|

|texto texto texto texto textotexto texto texto texto texto|

|texto texto texto texto texto texto texto|

desde já muito obrigado!!!

Editado por Angelo Augusto
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

cara, você já postou isso uma vez, certo??

e to olhando agora no tópico antigo, você passou mais informacoes do que esse, por causa da resposta do otro membro:

a combo esta recebendo valores de um banco !

e não sei qual vai ser o tamanho dos itens que ela vai receber !!!

o tamanho (Width) é de 516 esse é o tamanho que ela tem que ficar no FORM
mas o ListWidth tem que variar de acordo com os itens que receber!!!


entendeu[/code]

tenta não fazer isso, beleza?? o tópico antigo já tava andando. se você quisesse upar o tópico antigo tdo bem (desde que não exagerasse).

td bem que o tópico antigo so teve uma resposta, mas ele já tinha sido discutido. ai abrindo um tópico novo, você perde tudo o que já foi dito, que poderia levar a alguma coisa. afinal, você mesmo disse coisa a mais na sua resposta no tópico antigo que pode levar a responder a sua duvida.

e, otra coisa, isso que você disse na resposta, você devia ter dito no primeiro post desde o comeco. quando você for postar, tenta ser o mais claro possivel. quem vai ler o seu tópico não entende o que se passa na sua cabeca, então por mais besta que parecer a explicacao, tente ser o mais claro possivel.

porque qualquer um que ler o seu tópico novo, vai pensar a mesma coisa que o macedo no tópico antigo e vai dar a mesma resposta. e, apesar de você ter dito que não é isso que você quer, você ainda não explicou direito, pois ainda não entendi o que você quer.

tipo, você não quer mudar o width do combo, certo?? o que seria o listwidth?? estou imaginando (e justamente por não ter ficado claro, você não obteve resposta) que seja o tamanho da janelinha aberta com todos os itens quando você clica na setinha ao lado certo??

não tenho certeza, mas acho que não tem como mudar isso. pelo menos não de um jeito muito facil. mas talvez alguém saiba algo e poste ai.

então tipo, da proxima vez, pelo menos passa um link pro tópico antigo dizendo, tipo: "olha, postei antes e não resolveu, mas ainda to precisando".

EDITADO:

link do tópico antigo: http://scriptbrasil.com.br/forum/index.php?showtopic=102892

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

kuroi, valeu pela ajuda!!! e desculpa ai . Mas porque vi vocês me ajudando no tópico anterior e pensei em colocar ele em primeiro novametne para vocês verem !!rsrs foi mal

é isso mesmo que você disse ! a janelinha que aparece os resultados. Isso que quero que seja de acordo com o resultado obtido !!!

Se puderem me ajudar !!!

eu queria que a janelinha aparecesse tipo o auto size da combo , mas so que para a janelinha !!

Grato desde já!

Link para o comentário
Compartilhar em outros sites

  • 0

Olha aqui o que tentei quase deu certo mas não pega a maior string

aqui é um pedaço do código

ElseIf FAM = "Serviços complementares" And SubFAM = "Lastro" Then
    For CONT38 = 3 To NUMLINHA
      If (.Cells(CONT38, COLFAM).Text = "x" Or .Cells(CONT38, COLFAM).Text = "X") And (.Cells(CONT38, COLSUBFAM).Text = "x" Or .Cells(CONT38, COLSUBFAM).Text = "X") Then
        ITEMPROC = .Cells(CONT38, 2).Text
        CB_Item.AddItem ITEMPROC
      End If
    Next CONT38
    
    ElseIf FAM = "AMV" And SubFAM = "Trilho" Then
    For CONT39 = 3 To NUMLINHA
      If (.Cells(CONT39, COLFAM).Text = "x" Or .Cells(CONT39, COLFAM).Text = "X") And (.Cells(CONT39, COLSUBFAM).Text = "x" Or .Cells(CONT39, COLSUBFAM).Text = "X") Then
        ITEMPROC = .Cells(CONT39, 2).Text
        CB_Item.AddItem ITEMPROC
      End If
    Next CONT39
    
    ElseIf FAM = "AMV" And SubFAM = "Remodelação" Then
    For CONT40 = 3 To NUMLINHA
      If (.Cells(CONT40, COLFAM).Text = "x" Or .Cells(CONT40, COLFAM).Text = "X") And (.Cells(CONT40, COLSUBFAM).Text = "x" Or .Cells(CONT40, COLSUBFAM).Text = "X") Then
        ITEMPROC = .Cells(CONT40, 2).Text
        CB_Item.AddItem ITEMPROC
      End If
    Next CONT40
ai eu fiz isso para variar o tamanho da combobox
if len(ITEMPROC) > 0 then
CB_Item.listwidth = CB_Item.width + len(ITEMPROC)
end if

O problema é que ele sempre pega a primeira variavel e se tiver uma maior que ela fica escondida no listwidth da combo.

Obrigado!

Editado por Angelo Augusto
Link para o comentário
Compartilhar em outros sites

  • 0

Boa Tarde

Pelo que entendi do seu codigo o problema é que o codigo abaixo:

if len(ITEMPROC) > 0 then

CB_Item.listwidth = CB_Item.width + len(ITEMPROC)

end if

tem que estar dentro de cada FOR, pois se não estiver o combo vai assumir o listwidth do item que estiver em foco no momento

FUI!!!!!!!!!!!!

Link para o comentário
Compartilhar em outros sites

  • 0

meu caro amigo fiz ele dentro de um for

For contfor = 0 To CB_Item.ListCount
    If Len(CB_Item.List(contfor)) > Len(maior) Then
      maior = maior + CB_Item.List(contfor)
      CB_Item.ListWidth = Len(maior)
      'contfor = contfor + 1
    End If
    If contfor = CB_Item.ListCount - 1 Then
        contfor = contfor + 1
    End If
Next contfor

mas parece que o tamanha de uma letra não é do tamanho de Pts, pos o listwidth é em pontos , ele ate chega a mudar o tamanho do listwidth mas não é do tamanho da string recebida ....

Será que você sabe ou alguém sabe como resolver isso ?

muito obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

pessoal, resovido mais um problema!

cosegui fazer com que a lista da combo ficasse do tamanho dos item que estiverem nela preenchidas

o codigo segue abaixo :

Private Sub Combobox1_Click()

Dim contfor As Integer
Dim maior As String
Dim maiorcompara As Integer

maiorcompara = 0
contfor = 0
maior = ""

For contfor = 0 To Combobox1.ListCount
    If Len(Combobox1.List(contfor)) > Len(maior) Then
      maior = Combobox.List(contfor)
      maiorcompara = CInt(Len(maior)) * 5.0353
      Combobox1.ListWidth = maiorcompara
    End If
    If contfor = Combobox1.ListCount - 1 Then
        contfor = contfor + 1
    End If
Next contfor

end sub

A multiplicação e pelo seguinte Um ponto é igual a 0,0353 centímetros. Costuma-se medir em pontos os tamanhos de fonte.

Abraços

Qualaquer dúvida aqui estou!!!

Editado por Angelo Augusto
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...