Deutsch
Forum

Horizontale Laufschrift

 

Uckermann
Hallo,
ich habe schon überall gesucht, habe momentan leider auch keine Idee, wie ich eine horizontale Laufschrift (analog dem marquee in html) aufsetze.
 
XP-Prof - Profan immer neuste-
24.01.2007  
 



Verschoben, falsches Forum.

Laufschrift ist mit HTML nicht möglich, mit JS (JavaScript) schon. Google nach JS Laufschrift.
 
24.01.2007  
 




Carlo
Keil
Holzhammerlösung für reines Profan (vielleicht fällt jemand ja noch etwas eleganteres ein):
1. Memory-Bitmap anlegen
2. Memory-Bitmap mit dem gewünschten Text beschreiben
3. Bitmap-Ausschnitt mit Anfang des Textes aus der Memory-Bitmap ins Fenster kopieren
4. Nächsten Bitmap-Ausschnitt aus der Memory-Bitmap (1 Pixel weiter rechts anfangen) ins Fenster kopieren (natürlich über die erste Kopie drüber)
5. Schritt 4 solange wiederholen, bis dir die Pixel ausgehen

HTH
Carlo
 
24.01.2007  
 




Uckermann
Hallo If,
ich meinte natürlich in einem Fenster unter Xprofan. Ein String mit mehreren Zeichen soll größt möglich dargestellt werden.
Da nicht alle Zeichen in dieser Größe angezeigt werden können, sollen diese Zeichen als Laufschrift angezeit werden.
Bei einem ständig nicht gleichen wechselten Text.

Gruß
Michael Uckermann
 
XP-Prof - Profan immer neuste-
24.01.2007  
 



@Hallo Michael
Hier ein Text von Thomas Hölzer (denke mal, der ist frei)
Als Anfang ist der Code ganz gut
KompilierenMarkierenSeparieren
PRFellow-Vorlage
Autor: Thomas Hölzer, 1998
Ein einfacher Lauftext
Def Sleep(1) !"KERNEL32","Sleep"

Proc LaufText

    Parameters delay%,txt$
    SetTimer delay%

    While Neq(Len(txt$),0)

        Sleep(delay%)
        WaitInput
        Let txt$=Del$(txt$,1,1)
        StartPaint GetActiveWindow()
        DrawText 0,20,Add$(txt$,"   ")
        EndPaint
        Angehängter Leerstring verhindert "Schmierspuren"

    Wend

    KillTimer

EndProc

Beispiel
Cls
UseFont "ARIAL",16,0,0,0,0
LaufText 100,"Bei diesem Verfahren ist es schwierig, den Text weich scrollen zu lassen."
 
24.01.2007  
 




Jac
de
Lad
Oder mit der SKControl.dll. Die ist fabelhaft!
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
24.01.2007  
 



Büdde - sogar in echtzeit , soll heissen, egal wie schnell der Rechner ist - der Text wird immer gleichschnell scrollen - und im Gegensatz zu Marquee auch noch flimmerfreier, dennoch sicherlich an x Stellen zu optimieren habs nur hingepinselt.
KompilierenMarkierenSeparieren
!{$cleq}
const outptxt="Hallo Welt"
windowstyle 80
cls
showmax
mcls maxx,maxy
startpaint -1
usefont "Arial",100,0,0,0,0
textcolor 0,-1
long twidth=TextWeite(outptxt,nul)
endpaint
long scrollwidth=maxx+twidth

whilenot iskey(27) {

    startpaint -1
    cls $00FFFFFF
    drawtext maxx-mod(gettickcount/10,scrollwidth),100,outptxt
    endpaint
    mcopybmp 0,100 - maxx,100>0,100;0

}

end

Proc TextWeite   Autor: Gerhard Putschalka, leicht abgeändert iF

    Parameters T$,Prt_Ctl%
    Declare Z$,Adr&,Adr1&,Leng&
    Let Z$ = "000000"     wichtig ab Profan 7.x !
    Let Adr&=@If(@LT$(@Left$($PROFVER,1),"7"),@Add(@Addr(T$),1),@Addr(T$))
    Let Adr1&=@If(@LT$(@Left$($PROFVER,1),"7"),@Add(@Addr(Z$),1),@Addr(Z$))
    GetTextExtentPoint32A(%HDC,Adr&,@Len(T$),Adr1&)
    Let Leng&=@Long(Adr1&,0)
    Let Leng&=@If(@Equ(Prt_Ctl%,1),(@Long(Adr1&,0)/10),@Long(Adr1&,0))
    Return Leng&

EndProc


bzw. für nonXPSEler:
KompilierenMarkierenSeparieren
DECLARE __cf1&
Def __cf1(2) !"KERNEL32","GetProcAddress"
Def __cf2(1) !"KERNEL32","GetModuleHandleA"
__cf1&=__cf1(__cf2("gdi32.dll"),"GetTextExtentPoint32A")
WINDOWSTYLE 80
CLS
SHOWMAX
MCLS %MAXX,%MAXY
STARTPAINT -1
USEFONT "Arial",100,0,0,0,0
TEXTCOLOR 0,-1
var TWIDTH&=TEXTWEITE("Hallo Welt",0)
ENDPAINT
var SCROLLWIDTH&=%MAXX+TWIDTH&

WHILENOT ISKEY(27)

    STARTPAINT -1
    CLS $00FFFFFF
    DRAWTEXT %MAXX-MOD(&GETTICKCOUNT/10,SCROLLWIDTH&),100,"Hallo Welt"
    ENDPAINT
    MCOPYBMP 0,100 - %MAXX,100>0,100;0

ENDWHILE

end

proc TEXTWEITE

    PARAMETERS T$,PRT_CTL%
    DECLARE Z$,ADR&,ADR1&,LENG&
    LET Z$="000000"
    LET ADR&=@IF(@LT$(@LEFT$($PROFVER,1),"7"),@ADD(@ADDR(T$),1),@ADDR(T$))
    LET ADR1&=@IF(@LT$(@LEFT$($PROFVER,1),"7"),@ADD(@ADDR(Z$),1),@ADDR(Z$))
    call(__cf1&,%HDC,ADR&,@LEN(T$),ADR1&)
    LET LENG&=@LONG(ADR1&,0)
    LET LENG&=@IF(@EQU(PRT_CTL%,1),(@LONG(ADR1&,0)/10),@LONG(ADR1&,0))
    RETURN LENG&

endproc


727 kB
Hochgeladen:24.01.2007
Ladeanzahl51
Herunterladen
 
24.01.2007  
 




Frank
Abbing
Die ProSpeed.dll hat dazu einen Demo-Quellcode. Dort kannst du jede Schriftart verwenden, die Schrift darf einen beliebigen Hintergrund haben und die Schrift kann bebiebig schnell durchlaufen. Da der Scrolltext ein Sprite ist, läuft er völlig selbstständig und unabhängig vom Profanprogramm.
 
24.01.2007  
 




Uckermann
Vielen Dank für die schnellen Antworten!!!!

Gruß
Michael Uckermann
 
XP-Prof - Profan immer neuste-
24.01.2007  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.311 Betrachtungen

Unbenanntvor 0 min.
H.Brill30.06.2021
p.specht19.02.2017
Tango13.02.2017
gerd12.01.2014
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie