ALINHAR TEXTO EM MENSAGEM
Pessoal boa noite, conforme mostra a imagem gostaria de saber
se é possÃvel alinhar o texto da mensagem, pensei em algo para
pegar a propriedade Len do subitem(1) e diminuir pela quantidade
de espaço de cada linha da mensagem mas nem sei como nem se
há como fazer, esse é o código usado para exibir a mensagem:
se é possÃvel alinhar o texto da mensagem, pensei em algo para
pegar a propriedade Len do subitem(1) e diminuir pela quantidade
de espaço de cada linha da mensagem mas nem sei como nem se
há como fazer, esse é o código usado para exibir a mensagem:
With lstItens
For i = 1 To .ListItems.Count
.ListItems(i).Selected = True
If .SelectedItem.Checked = True Then produto = produto & StrConv(.SelectedItem.SubItems(1), vbProperCase) & _
[Ô]: [Ô] & .SelectedItem.SubItems(2) & vbNewLine
Next
End With
If MsgBox([Ô]Confirma gravação?[Ô] & vbCrLf & [Ô]Os seguintes produtos serão enviados:[Ô] & vbCrLf & vbCrLf & _
[Ô]-----------------------------------------[Ô] & vbCrLf & _
produto & [Ô]_________________________________________[Ô] & vbCrLf & _
[Ô]Total de itens: [Ô] & lblTotalItens & vbCrLf & [Ô]Valor Total: R$ [Ô] & lblTotalValores & vbCrLf & _
[Ô][Ô], vbYesNo, [Ô]Controle de Vendas![Ô]) = vbYes Then
Eu acho que usar um form mesmo seria melhor do que uma messagbox... são muitas informações
KERPLUNK, obrigado mais uma vez, eu havia pensado nisso,
no entanto estou exercitando a codificação para aprender cada
vez mais.
Como eu sempre digo aqui, tenho muitas ideias boas mas não sei
como coloca-las em prática.
Vou manter o tópico aberto mais um pouco para ver se aparece alguém
que saiba como fazer isso (se é que é possÃvel).
Obrigado mais uma vez por estar sempre pronto para ajudar meu amigo.
no entanto estou exercitando a codificação para aprender cada
vez mais.
Como eu sempre digo aqui, tenho muitas ideias boas mas não sei
como coloca-las em prática.
Vou manter o tópico aberto mais um pouco para ver se aparece alguém
que saiba como fazer isso (se é que é possÃvel).
Obrigado mais uma vez por estar sempre pronto para ajudar meu amigo.
Sim, é possÃvel. Mas tão trabalhoso que não vale a pena. Uma MessageBox é para mensagens mais simples, uma pergunta, um aviso, uma confirmação simples ou coisa assim. Quando você precisa exibir dados mais complexos, como é o seu caso, não é uma boa alternativa. é mais uma do tipo de coisa que é mais para conceito do que para codificação. Acredite ou não, mais de 60% do sucesso de um programa é a parte conceitual. A codificação é quase que secundária. Veja bem o seu caso aqui. Você quer exibir uma lista de produtos para confirmar alguma ação. Imagine que o usuário pode escolher uns 20 ou 30, então colocar apenas os dois ou três primeiros explicitamente, seguido de uma soma dos demais, não é uma mensagem clara. Seria muito melhor exibir todos os produtos em um grid com botões para confirmar, assim, o usuário pode ter certeza do que está fazendo. Além disso, serve para SUA segurança também. Se o usuário reclamar desse aspecto, pelo menos essa desculpa ele não vai ter, pois você estará deixando bem claro na mensagem o que vai acontecer. Conceitual.
KERPLUNK, concordo com cada linha que você escreveu,
entretanto mesmo que a mensagem for exibir 20 ou 30 linhas só seria
preciso encontrar um código que acertace a distancia que ficaria o valor
da descrição para apenas um item e seria feito para todos.
Como você disse anteriormente, um form resolveria isso mas
só postei para ver se era possÃvel fazer com mensagem e também eu
ganharia um pouco mais de conhecimento em codificação (coisa que preciso
muito).
Você nem imagina ( ou talvez até imagine) a felicidade que sinto em ter criado
esse simples código, tudo que uso em meus projetos são copy x cola do que aprendi
com os cursos do professor Mário Andrade
Claro que com algumas adaptações, enfim, o prazer de entender a lógica de como as coisas funcionam
é muito bom.
Espero um dia poder fazer isso também em C# e é muito bom saber que posso
contar com você e com todos aqui do VBMania.
entretanto mesmo que a mensagem for exibir 20 ou 30 linhas só seria
preciso encontrar um código que acertace a distancia que ficaria o valor
da descrição para apenas um item e seria feito para todos.
Como você disse anteriormente, um form resolveria isso mas
só postei para ver se era possÃvel fazer com mensagem e também eu
ganharia um pouco mais de conhecimento em codificação (coisa que preciso
muito).
Você nem imagina ( ou talvez até imagine) a felicidade que sinto em ter criado
esse simples código, tudo que uso em meus projetos são copy x cola do que aprendi
com os cursos do professor Mário Andrade
Claro que com algumas adaptações, enfim, o prazer de entender a lógica de como as coisas funcionam
é muito bom.
Espero um dia poder fazer isso também em C# e é muito bom saber que posso
contar com você e com todos aqui do VBMania.
Mas uma messagebox com 20 ou 30 linhas tomaria praticamente a tela toda e ficaria (na minha opinião) feio. Com um form, você pode ter um grid que e [Ô]rolável[Ô] e não ocuparia tanto espaço. Posso fazer um exemplo pra você aqui de algo assim se você quiser...
Verdade, mas esse sisteminha vai ser para uma loja de celular onde só tem 5 tipos
de serviços, estou adaptando um sistema de vendas para isso.
Dessa forma ficaria viável (se fosse possÃvel ) fazer com msgbox mesmo.
Estou doando para um amigo que está fazendo tudo isso em um caderno.
Só queria deixar bem funcional.
de serviços, estou adaptando um sistema de vendas para isso.
Dessa forma ficaria viável (se fosse possÃvel ) fazer com msgbox mesmo.
Estou doando para um amigo que está fazendo tudo isso em um caderno.
Só queria deixar bem funcional.
KERPLUNK esta correto.
crie um form e abra ele modal e carregue os dados.
Mas para formatar tente isso para alinhar a direita:
Print #1, [Ô][Ô]; Tab(11); [Ô]S.TOT >[Ô]; Tab(28); Format$(lblSubTotal, [Ô]@@@@@@@@@@@[Ô])
Print #1, [Ô][Ô]; Tab(11); [Ô]DESC >[Ô]; Tab(28); Format$(FormatNumber(lblSubTotal - txttotal, 2), [Ô]@@@@@@@@@@@[Ô])
crie um form e abra ele modal e carregue os dados.
Mas para formatar tente isso para alinhar a direita:
Print #1, [Ô][Ô]; Tab(11); [Ô]S.TOT >[Ô]; Tab(28); Format$(lblSubTotal, [Ô]@@@@@@@@@@@[Ô])
Print #1, [Ô][Ô]; Tab(11); [Ô]DESC >[Ô]; Tab(28); Format$(FormatNumber(lblSubTotal - txttotal, 2), [Ô]@@@@@@@@@@@[Ô])
Nilson, não entendi como usar este código.
Format$(lblSubTotal, [Ô]@@@@@@@@@@@[Ô])
Cada arroba dessas alinha o texto a direita, que é o maior problema no vb6, alinhar a direita.
faça o teste, coloque isso em um botão.
MsgBox Format$([Ô]65,00[Ô], [Ô]@@@@@@@@@@@[Ô])
MsgBox [Ô]65,00[Ô]
MsgBox Format$([Ô]65,00[Ô], [Ô]@@@@@@@@@@@[Ô])
melhor ainda, isso, observe que 65,00 não esta alinhado, mas 66,00 sim.
MsgBox Format$([Ô]66,00[Ô], [Ô]@@@@@@@@@@@[Ô]) & Chr(13) & [Ô]65,00[Ô] & Chr(13) & Format$([Ô]66,00[Ô], [Ô]@@@@@@@@@@@[Ô])
obs: Chr(13) faz o mesmo que vbCrLf, pode alterar se quiser.
Cada arroba dessas alinha o texto a direita, que é o maior problema no vb6, alinhar a direita.
faça o teste, coloque isso em um botão.
MsgBox Format$([Ô]65,00[Ô], [Ô]@@@@@@@@@@@[Ô])
MsgBox [Ô]65,00[Ô]
MsgBox Format$([Ô]65,00[Ô], [Ô]@@@@@@@@@@@[Ô])
melhor ainda, isso, observe que 65,00 não esta alinhado, mas 66,00 sim.
MsgBox Format$([Ô]66,00[Ô], [Ô]@@@@@@@@@@@[Ô]) & Chr(13) & [Ô]65,00[Ô] & Chr(13) & Format$([Ô]66,00[Ô], [Ô]@@@@@@@@@@@[Ô])
obs: Chr(13) faz o mesmo que vbCrLf, pode alterar se quiser.
Certa vez fiz assim com LItem e MSFlexgrid:
Strings alinha pela direita e;
Integer alinha pela esquerda.
Exemplo:
AAS
123
X = Right ([Ô]----------[Ô] & Str(val(123)),10)
X = [Ô]-------123[Ô]
Resultado:
AAS
-------123. O hÃfen pode ser chr(32), Space.
Desculpem se fui inoportuno.
Um abraço,
AAS
Strings alinha pela direita e;
Integer alinha pela esquerda.
Exemplo:
AAS
123
X = Right ([Ô]----------[Ô] & Str(val(123)),10)
X = [Ô]-------123[Ô]
Resultado:
AAS
-------123. O hÃfen pode ser chr(32), Space.
Desculpem se fui inoportuno.
Um abraço,
AAS
Tópico encerrado , respostas não são mais permitidas