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.

