Seite 1 von 1

Laufschrift in Clipper 5

Verfasst: Fr, 03. Jul 2015 10:24
von mini990
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

Re: Laufschrift in Clipper 5

Verfasst: Fr, 03. Jul 2015 14:51
von AUGE_OHR
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.)