3 PONTOS NO FINAL DO MSFLEXGRID

USUARIO.EXCLUIDOS 21/08/2007 11:08:45
#231836
pessoal... nao sei como perguntar, mas vou tentar...


queria que quando nao houve espaço para preencher uma coluna do grid aparecesse "..." no final, mostrando que ainda a dados se abrir mais a coluna.

faço assim para preencher as colunas...

Grid2.TextMatrix(.Rows - 1, 0) = TBVlientes!nome_cliente

mas é claro, o 3 pontos tem que aparecer só se nao houver espaço

grata
USUARIO.EXCLUIDOS 21/08/2007 12:05:47
#231848
faz um sub no forms que se algum campo for vazio ele escreve ...

no começo do sub de preencher o grid voce coloca pra chama a sub

public sub Campo_Vazio()

textbox1.text = "..."

end Sub


se nao for isso me explica melhor o que quer.
tipo como voce puxa essas informaçoes e tals
abraços
USUARIO.EXCLUIDOS 21/08/2007 12:10:17
#231850
Para fazer isso basta você saber qtos caracteres podem ser mostrados na sua coluna do grid

if len(TBVlientes!nome_cliente) > 40 then
Grid2.TextMatrix(.Rows - 1, 0) = TBVlientes!nome_cliente & "..."
else
Grid2.TextMatrix(.Rows - 1, 0) = TBVlientes!nome_cliente
end if


onde 40 número de caracteres que aparecem na tela
USUARIO.EXCLUIDOS 21/08/2007 12:15:39
#231851
Na verdade terá que descontar o três ... para poder exibir, ou seja,

if Len(TBVlientes!nome_cliente) > 40 then
Grid2.TextMatrix(.Rows - 1, 0) = Left(TBVlientes!nome_cliente, 37) & "..."
else
Grid2.TextMatrix(.Rows - 1, 0) = TBVlientes!nome_cliente
end if

USUARIO.EXCLUIDOS 21/08/2007 12:45:58
#231858
hum.. valew pessoal era isso mesmo que eu queria...

mas tipo, vai depender da letra nao?? pois umas sao maiores que as outras.

e se o usuario aumentar a coluna no tempo de execução?


USUARIO.EXCLUIDOS 10/09/2007 13:43:50
#234891
alguem pode me ajudar...
USUARIO.EXCLUIDOS 10/09/2007 15:56:58
#234920
Resposta escolhida
Olha só... utilize o Printer como seu auxiliar nesta história.


1º iguale a fonte do Printer igual a fonte do Grid
Printer.Font = MSFlexGrid1.Font

2º Armazene a largura do texto em uma variável
Dim strWidth as Long
strWidth = Printer.TextWidth (TBVlientes!nome_cliente)

3º Compare com a Largura da Coluna e Printe o texto
if Grid2.ColWidth(0) < strWidth then
Grid2.TextMatrix(.Rows - 1, 0) = Left(TBVlientes!nome_cliente,37) & "..."
Else
Grid2.TextMatrix(.Rows - 1, 0) = TBVlientes!nome_cliente
End if
Tópico encerrado , respostas não são mais permitidas