Español
Fuente/ Codesnippets

Bild Mapa de bits Diálogo Scrollen Simples

 

KompilierenMarcaSeparación

86 kB
Hochgeladen:25.09.2007
Ladeanzahl365
Descargar
741 kB
Hochgeladen:25.09.2007
Ladeanzahl280
Descargar
2 kB
Hochgeladen:25.09.2007
Ladeanzahl286
Descargar
 
25.09.2007  
 




Frank
Abbing
Hab algunos Sachen mejorado, como: Flackern beseitigt, automatische Bildrestaurierung y Echtzeitscrollen.
KompilierenMarcaSeparación
 {$cleq}
Const appTitle=PicScrollDlg
Const scrollBarsWidth=20
long hPic=create(hPic,-1,background.bmp)     Bildnamen anpassen
long hPic.szX=bmpx,hPic.szY=bmpy
windowstyle 2 | 8 | 16 | 512
long hDlg=createwindow(hwnd,appTitle,100,100,540,380)
long hDlg.hScrollY=create(vScroll,hDlg,,width(hDlg)-scrollBarsWidth,0,scrollBarsWidth,height(hDlg)-scrollBarsWidth)
long hDlg.hScrollX=create(hScroll,hDlg,,0,height(hDlg)-scrollBarsWidth,width(hDlg)-scrollBarsWidth,scrollBarsWidth)
long hBlindStatic=create(text,hDlg,,width(hDlg)-scrollBarsWidth,height(hDlg)-scrollBarsWidth,scrollBarsWidth,scrollBarsWidth)
SubClass hDlg.hScrollX, 1
SubClass hDlg.hScrollY, 1
SubClass hDlg, 1
usermessages wm_close

While 1

    hPic.Paint(hPic,hDlg,hDlg.hScrollX,hDlg.hScrollY,hPic.szX,hPic.szY)
    invalidaterect(hBlindStatic,0,0)
    updatewindow(hBlindStatic)
    waitinput
    case umessage==wm_close:break

EndWhile

deleteobject hpic
destroywindow(hDlg)
end

Proc hPic.Paint

    Parameters hPic2&,hDlg&,hScrlX&,hScrlY&,picSzX&,picSzY&
    long x=0-getScrollPos(hScrlX&)/100*(picSzX&-width(hDlg&)+scrollBarsWidth)
    long y=0-getScrollPos(hScrlY&)/100*(picSzY&-height(hDlg&)+scrollBarsWidth)
    startpaint hDlg&
    CopyPic hPic2&, 0,0 - (width(hDlg&)-scrollBarsWidth)-x,(height(hDlg&)-scrollBarsWidth)-y > x,y; 0
    endpaint
    invalidaterect(hScrlX&,0,0)
    updatewindow(hScrlX&)
    invalidaterect(hScrly&,0,0)
    updatewindow(hScrly&)

EndProc

SubClassProc

    If ((%sMessage=SBM_GETRANGE) or (%sMessage=WM_PAINT))

        hPic.Paint(hPic,hDlg,hDlg.hScrollX,hDlg.hScrollY,hPic.szX,hPic.szY)
        invalidaterect(hBlindStatic,0,0)
        updatewindow(hBlindStatic)

    EndIf

ENDPROC

 
10.12.2008  
 




RGH
Hier el XPSE-Code traducido después de XProfan:
KompilierenMarcaSeparación
 $H Windows.ph
 $H Messages.ph
def $appTitle "PicScrollDlg"
def &scrollBarsWidth 20
var hPic& = create("hPic", -1, "hintergrund.bmp") Bildnamen anpassen
var hPic.szX& = %bmpx
var hPic.szY& = %bmpy
windowstyle 2 | 8 | 16 | 512
var hDlg& = create("window", %hwnd, $appTitle, 100, 100, 540, 380)
var hDlg.hScrollY& =
create("vScroll", hDlg&, "", width(hDlg&) - &scrollBarsWidth, 0,
&scrollBarsWidth, height(hDlg&) - &scrollBarsWidth)
var hDlg.hScrollX& =
create("hScroll", hDlg&, "", 0, height(hDlg&) - &scrollBarsWidth,
width(hDlg&) - &scrollBarsWidth, &scrollBarsWidth)
var hBlindStatic& =
create("text", hDlg&, "", width(hDlg&) - &scrollBarsWidth, height(hDlg&) - &scrollBarsWidth,
&scrollBarsWidth, &scrollBarsWidth)
SubClass hDlg.hScrollX&, 1
SubClass hDlg.hScrollY&, 1
SubClass hDlg&, 1
usermessages ~wm_close

While 1

    hPic.Paint(hPic&, hDlg&, hDlg.hScrollX&, hDlg.hScrollY&, hPic.szX&, hPic.szY&)
    ~invalidaterect(hBlindStatic&, 0, 0)
    ~updatewindow(hBlindStatic&)
    waitinput
    case %umessage = ~wm_close : break

EndWhile

deleteobject hpic&
destroywindow(hDlg&)
end

Proc hPic.Paint

    Parameters hPic2&,hDlg&,hScrlX&,hScrlY&,picSzX&,picSzY&
    var x& = 0 - getScrollPos(hScrlX&) / 100 * (picSzX& - width(hDlg&) + &scrollBarsWidth)
    var y& = 0 - getScrollPos(hScrlY&) / 100 * (picSzY& - height(hDlg&) + &scrollBarsWidth)
    startpaint hDlg&
    CopyPic hPic2&, 0,0 - (width(hDlg&) - &scrollBarsWidth - x&),
    (height(hDlg&) - &scrollBarsWidth - y&) > x&, y&; 0
    endpaint
    ~invalidaterect(hScrlX&, 0, 0)
    ~updatewindow(hScrlX&)
    ~invalidaterect(hScrly&, 0, 0)
    ~updatewindow(hScrly&)

EndProc

SubClassProc

    If ((%sMessage = ~SBM_GETRANGE) or (%sMessage = ~WM_PAINT))

        hPic.Paint(hPic&, hDlg&, hDlg.hScrollX&, hDlg.hScrollY&, hPic.szX&, hPic.szY&)
        ~invalidaterect(hBlindStatic&, 0, 0)
        ~updatewindow(hBlindStatic&)

    EndIf

./../../function-references/XProfan/ENDPROC/'>ENDPROC


Saludo
Roland

@IF: Hier es wirklich völlig unverständlich, por qué einerseits links neben el Posting una große vacío Fläche es y dafür en el Gegenzug el Listing ständig después de rechts a scrollen es, en una bißchen qué a erfassen. Meiner unmaßgeblichen Meinung después de debería el Einrücken el Postings zugunsten besserer Lesbarkeit ersatzlos gestrichen voluntad!
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
11.12.2008  
 




RGH
Und el Ganze deutlich kürzer:
KompilierenMarcaSeparación
 $H Messages.ph
def $appTitle "PicScrollDlg"
def &scrollBarsWidth 16
var hPic& = create("hPic", -1, "hintergrund.bmp") Bildnamen anpassen
var hPic.szX& = %bmpx
var hPic.szY& = %bmpy
windowstyle 2 | 8 | 16 | 512
var hDlg& = create("window", 0, $appTitle, 100, 100, 540, 380)
var hDlg.hScrollY& =
create("vScroll", hDlg&, "", width(hDlg&) - &scrollBarsWidth, 0,
&scrollBarsWidth, height(hDlg&) - &scrollBarsWidth)
var hDlg.hScrollX& =
create("hScroll", hDlg&, "", 0, height(hDlg&) - &scrollBarsWidth,
width(hDlg&) - &scrollBarsWidth, &scrollBarsWidth)
SubClass hDlg.hScrollX&, 1
SubClass hDlg.hScrollY&, 1
hPic.Paint(hPic&, hDlg&, hDlg.hScrollX&, hDlg.hScrollY&, hPic.szX&, hPic.szY&)

While 1

    waitinput
    case %key = 2 : break

EndWhile

deleteobject hpic&
destroywindow(hDlg&)
end

Proc hPic.Paint

    Parameters hPic2&,hDlg&,hScrlX&,hScrlY&,picSzX&,picSzY&
    var x& = 0 - getScrollPos(hScrlX&) / 100 * (picSzX& - width(hDlg&) + &scrollBarsWidth)
    var y& = 0 - getScrollPos(hScrlY&) / 100 * (picSzY& - height(hDlg&) + &scrollBarsWidth)
    startpaint hDlg&
    CopyPic hPic2&, 0,0 - (width(hDlg&) - &scrollBarsWidth - x&),
    (height(hDlg&) - &scrollBarsWidth - y&) > x&, y&; 0
    endpaint

EndProc

SubClassProc

    If ((%sMessage = ~SBM_GETRANGE) or (%sMessage = ~WM_PAINT))

        hPic.Paint(hPic&, hDlg&, hDlg.hScrollX&, hDlg.hScrollY&, hPic.szX&, hPic.szY&)

    EndIf

ENDPROC

 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
11.12.2008  
 




Frank
Abbing

Nur a Information: Von ":=" para Wertzuweisungen innerhalb XProfan bin Yo abgekommen, dass einfache Gleichheitszeichen para Zuweisungen y doppeltes Gleichheitszeichen para Vergleiche nutze Yo heute sólo todavía.


Hab simplemente sólo deinen Code übernommen y luego erweitert. Yo benutze sólo una Gleichzeichen para Vergleiche y Zuweisungen. Su Arbeiten es ineffizient.
 
11.12.2008  
 



RGH
@IF: Hier es wirklich völlig unverständlich, por qué einerseits links neben el Posting una große vacío Fläche es y dafür en el Gegenzug el Listing ständig después de rechts a scrollen es, en una bißchen qué a erfassen.


Code "Separieren" para Code-Vollbild, mehr kann Yo _im Moment_ no bieten.
 
15.12.2008  
 




Jörg
Sellmeyer
¿Por qué no simplemente todos Beiträge schön links ausgerichtet untereinander? Dieses links/rechts macht la página muy unruhig. Yo komm me antes como beim Tennis.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
15.12.2008  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

6.639 Views

Untitledvor 0 min.
Jörg Sellmeyer07.06.2020
H.Brill04.05.2019
Rainer Hoefs03.05.2019
Christof Neuß11.07.2018
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie