versuche mal diese Sourcen
Code: Alles auswählen
PROCEDURE LAUFTEXT( nZeile, spalte, endpos, string, delay, hoehe, zeichen )
/* $DOC$
* $FUNCNAME$
* LAUFTEXT
* $CATEGORY$
* $ONELINER$
* erzeugt Laufschrift Text
* $SYNTAX$
* LAUFTEXT(nZEILE, nSPALTE, nENDPOS, cSTRING, nDELAY, nHOEHE, cZEICHEN)
* $ARGUMENTS$
* <nZEILE> = Anzeige in ZEILE
* <nSPALTE> = Anzeige in SPALTE
* <nENDPOS> = Endposition der Anzeige
* <cSTRING> = TEXT der angezeigt werden soll
* <nDELAY> = Zeit Verz"gerung
* <nHOEHE> = Ton H"he
* <cZEICHEN> = Loeschzeichen nach durchlauf des TEXTes
* $RETURNS$
* $DESCRIPTION$
* $EXAMPLES$
* $INCLUDE$
* $SEEALSO$
* $END$
*/
LOCAL lang, zaehler, breit, teil
LOCAL zeile
DEFAULT nZeile TO MAXROW()
IF nZeile == 23
zeile := MAXROW() - 1
ELSE
zeile := nZeile
ENDIF
zaehler := 1
teil := 0
breit := spalte - endpos + 1
IF PCOUNT() < 7
zeichen := " "
ENDIF
string := TRIM( string ) + REPLICATE( zeichen, breit )
lang := LEN( string )
FOR zaehler = 1 TO lang
INKEY( delay )
IF teil == 0
@ zeile, spalte - zaehler + 1 SAY SUBSTR( string, 1, zaehler )
ELSE
teil := teil + 1
@ zeile, endpos SAY SUBSTR( string, teil, breit )
LOOP
ENDIF
IF endpos == spalte - zaehler + 1
teil := 1
ENDIF
NEXT
RETURN
oder diese Version
Code: Alles auswählen
FUNCTION LAUFSCHRIFT(m_zeile, m_spalte, m_endpos, m_string )
** SYNTAX : Laufschrift (<ExpN1>,<ExpN2><ExpN3>,<ExpC>, **
LOCAL m_len, m_count, m_breite, m_teil
m_teil = 0
m_breite = m_spalte - m_endpos + 1
m_string = TRIM (m_string) + REPLICATE (" ",m_breite)
m_len = LEN (m_string)
FOR m_count = 1 TO m_len
IF m_teil = 0
xx=SAVESCREEN(m_zeile,m_spalte-m_count+1,m_zeile,m_spalte+m_count+1)
@ m_zeile,m_spalte-m_count+1 SAY SUBSTR (m_string,1,m_count)
INKEY(0.01)
RESTSCREEN(m_zeile,m_spalte-m_count+1,m_zeile,m_spalte+m_count+1,xx)
ELSE
m_teil = m_teil + 1
xx=SAVESCREEN(m_zeile, m_endpos,m_zeile,m_endpos + m_breite)
@ m_zeile, m_endpos SAY SUBSTR (m_string,m_teil,m_breite)
* inkey(0.001)
RESTSCREEN(m_zeile, m_endpos,m_zeile,m_endpos + m_breite,xx)
LOOP
ENDIF
IF m_endpos = m_spalte - m_count + 1
m_teil = 1
ENDIF
NEXT
SET COLOR TO W+*/N
@ m_zeile,m_spalte-m_count+1 SAY SUBSTR (m_string,1,m_count)
INKEY(1)
SET COLOR TO W/N
RETURN (.T.)