Dúvida na dialog.
Enviado: 27 Mai 2010 15:06
Ola
devo ta comendo bola em alguma coisa... mas já estou preso a isto a uns dois dias então resolvi pedir ajuda aqui no forum
estou querendo fazer uma janela que, de acordo com o tamanho da mensagem ela quebre em linhas o texto, quando necessário.
E que fique na tela de acordo com um tempo desejado
tudo esta funcionando... mas na hora de dar o display na tela, ela esta mostrando uma linha só, e não é sempre a primeira ou a ultima, é meio que aleatório o que ela mostra
olhem como fiz até agora
// colocar isto em qualquer lugar do sistema, onde o primeiro parametro
// é a mensagem, o segundo o título e o terceiro o tempo que vai ficar na tela
// coloquei bem grande a mensagem para poder quebrar em várias linhas
aqui a chamada da função
e aqui a função como está
vide que dou o display com @ say...,
e tem mais uma... se a cada incremento no for/next colocar uma msginfo(str(i)) por exemplo, aí funciona direitinho... mas não é este o intuito...é deixar a função livre de ação do usuário...
se alguem puder me ajudar agradeço
luis ricardo
Nota de Moderação:
por Toledo: O presente tópico foi movido da seção "xHarbour", uma vez que seu conteúdo não tem relação com os objetivos daquela seção.
devo ta comendo bola em alguma coisa... mas já estou preso a isto a uns dois dias então resolvi pedir ajuda aqui no forum
estou querendo fazer uma janela que, de acordo com o tamanho da mensagem ela quebre em linhas o texto, quando necessário.
E que fique na tela de acordo com um tempo desejado
tudo esta funcionando... mas na hora de dar o display na tela, ela esta mostrando uma linha só, e não é sempre a primeira ou a ultima, é meio que aleatório o que ela mostra
olhem como fiz até agora
// colocar isto em qualquer lugar do sistema, onde o primeiro parametro
// é a mensagem, o segundo o título e o terceiro o tempo que vai ficar na tela
// coloquei bem grande a mensagem para poder quebrar em várias linhas
aqui a chamada da função
Código: Selecionar todos
LMultLin("1234567890 a 1234567890 b 1234567890 c 1234567890 d 1234567890 e 1234567890 f 1234567890 g 1234567890 h 1234567890 i 1234567890 j 1234567890 k 1234567890 l ",;
"A T E N Ç Ã 0",;
5)Código: Selecionar todos
function lMultLin(cmSg, cTitle, nTime)
// dialog onde vou dar display
INIT DIALOG oDlg TITLE cTitle ;
AT 287, 361 ;
SIZE 385, 125 ;
NOEXIT ;
STYLE DS_CENTER + WS_VISIBLE
//
oDlg:Activate( .T. )
//
// coordenada da primeira linha dentro do dialog
nTop := 10
nLeft := 10
// largura maxima por linha da mensagem
nMaxWidth := 70
// quantidade de linhas necessárias
nNumLines := MLCount( cMsg, nMaxWidth )
FOR i := 1 TO nNumLines
//
cLineMens := MemoLine( cMsg, nMaxWidth, i )
cLineMens := ALLTRIM( cLineMens )
//
@ nTop, nLeft ;
SAY oSay ;
CAPTION cLineMens ;
FONT F_SAYMENS;
OF oDlg
nLeft += 20
msginfo(str(i))
//
NEXT
//
Inkey( nTime )
//
oDlg:Close()
//
Return .T.e tem mais uma... se a cada incremento no for/next colocar uma msginfo(str(i)) por exemplo, aí funciona direitinho... mas não é este o intuito...é deixar a função livre de ação do usuário...
se alguem puder me ajudar agradeço
luis ricardo
por Toledo: O presente tópico foi movido da seção "xHarbour", uma vez que seu conteúdo não tem relação com os objetivos daquela seção.