Hallo,
habe hier noch ein altes Clipper-Programm (ein Umschreiben lohnt sich nicht mehr).
Hier soll ein String, der länger als 80 Zeichen ist als Laufschrift ausgegeben werden.
Habe die NG zu Clipper und den Tools durchsucht aber nichts gefunden.
Geht das mit Clipper/ Tools III und ich habe was in der Doku übersehen?
Oder gibt's da irgendein Tool dafür? --> in der Suchfunktion habe ich ein AnimText.zip von Jimmy gefunden???
Gruß Stefan
Laufschrift in Clipper 5
Moderator: Moderatoren
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Laufschrift in Clipper 5
versuche mal diese Sourcen
oder diese Version
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
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.)
gruss by OHR
Jimmy
Jimmy