Italia
Foro

Horizontale Laufschrift

 

Uckermann
Ciao,
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 Foro.

Laufschrift ist mit HTML nicht possibile, mit JS (JavaScript) schon. Google nach JS Laufschrift.
 
24.01.2007  
 




Carlo
Keil
Holzhammerlösung per 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 (naturalmente circa 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 naturalmente in einem Fenster unter Xprofan. Ein String mit mehreren Zeichen soll größt possibile dargestellt werden.
Da nicht alle Zeichen in dieser Dimensione angezeigt werden können, sollen diese Zeichen als Laufschrift angezeit werden.
Bei einem ständig nicht gleichen wechselten Text.

Saluto
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 scr
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. per 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
Downloadcounter51
Download
 
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, corre er völlig selbstständig und unabhängig vom Profanprogramm.
 
24.01.2007  
 




Uckermann
Vielen Dank per die schnellen Antworten!!!!

Saluto
Michael Uckermann
 
XP-Prof - Profan immer neuste-
24.01.2007  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

2.295 Views

Untitledvor 0 min.
H.Brill30.06.2021
p.specht19.02.2017
Tango13.02.2017
gerd12.01.2014
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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