Español
Foro

Hecho: Zweite Gridbox scrollen

 

Thomas
Freier
Yo quería gerne una zweite Gridbox con el Ersten scrollen. Horizontal es OK. Vertikal bekomme Yo simplemente no hin y habe hier auch no Hinweise (außer MultiEdit usw.) gefunden. Kennt uno una solución?
KompilierenMarcaSeparación
 $H WINDOWS.PH
 $H MESSAGES.PH
 $H COMMCTRL.PH
Declare Titel$,hGrid&,hGrid1&

Proc GridBox1

    Titel$ = "Links;0;180;Mitte;0;100;Rechts;0;80"
    hGrid&   = Create("GridBox", %hWnd, Titel$, 1, 30, 30, 200, 190)
    AddString(hGrid&, "AB|DEF|0123")
    AddString(hGrid&, "GHI|J23KL|012345")
    AddString(hGrid&, "FGRT|MNOP|PQR|")
    AddString(hGrid&, "STU||V")
    AddString(hGrid&, "ABCD12|STUVW|XYZ0")
    AddString(hGrid&, "ABCD34|stuvw|999,00")
    AddString(hGrid&, "Abcd45|STUVW|-111,11")
    AddString(hGrid&, "Abcd56|StUVW|2.111,11")
    AddString(hGrid&, "Abcd56|AbxVW|-15.234,56")
    AddString(hGrid&, "Abcd67|STUVW|0,00")

EndProc

Proc GridBox2

    Titel$ = "Links;0;180;Mitte;0;100;Rechts;0;80"
    hGrid1&   = Create("GridBox", %hWnd, Titel$, 1, 330, 30, 200, 190)
    AddString(hGrid1&, "AB|DEF|0123")
    AddString(hGrid1&, "GHI|J23KL|012345")
    AddString(hGrid1&, "FGRT|MNOP|PQR|")
    AddString(hGrid1&, "STU||V")
    AddString(hGrid1&, "ABCD12|STUVW|XYZ0")
    AddString(hGrid1&, "ABCD34|stuvw|999,00")
    AddString(hGrid1&, "Abcd45|STUVW|-111,11")
    AddString(hGrid1&, "Abcd56|StUVW|2.111,11")
    AddString(hGrid1&, "Abcd56|AbxVW|-15.234,56")
    AddString(hGrid1&, "Abcd67|STUVW|0,00")

EndProc

~SetScrollRange(hGrid&,0,0,1000,1)
~SetScrollRange(hGrid&,0,0,1000,0)
declare scroll&,ascroll&
declare scroll1&,ascroll1&

SubClassProc

    If SubClassMessage(hGrid&, ~WM_HSCROLL)

        locate 0,0
        print str$(~GetScrollPos(hGrid&,0))+"    "
        ascroll& = scroll&
        scroll& = ~GetScrollPos(hGrid&,0)
        ~SetScrollPos(hGrid1&,0,scroll&,1)
        sendmessage(hGrid1&,~LVM_SCROLL,scroll&-ascroll&,0)
        ~UpdateWindow(hGrid1&)
        Set("WinProc",1)

    ElseIf SubClassMessage(hGrid&, ~WM_VSCROLL)

        locate 0,30
        print str$(~GetScrollPos(hGrid&,1))+"    "
        ascroll1& = scroll1&
        scroll1& = ~GetScrollPos(hGrid&,1)
        ~SetScrollPos(hGrid1&,1,scroll1&,1)
        sendmessage(hGrid1&,~LVM_SCROLL,(scroll1&-ascroll1&),0)
        ~UpdateWindow(hGrid1&)
        Set("WinProc",1)

    EndIf

endproc

SetTrueColor 1
WindowStyle 538
WindowTitle "Scroll nur linke Gridbox"
Window 100,100-600,400
Cls ~GetSysColor(15)
UseFont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
GridBox1
GridBox2
Set("SubClassMode",1)
SubClass hGrid&,1

While 1

    WaitInput
    case %key=2: Break

Wend

../function-references/XProfan/subclass/'>SubClass hGrid&,0
 
Gruß Thomas
Windows XP SP2, XProfan X2
16.08.2009  
 



Wenn Yo Su código starte, entonces scrollt el rechte GridBox con el Linken con.

Was genau se porque passieren?
 
16.08.2009  
 




Thomas
Freier
Sí, así war el pensamiento, dass el sichtbare Inhalt el rechten Box el el Linken gleicht, si la Linke gescrollt se. Z.Z. es aber sólo horizontal.
Posesiones me auch otra vez Franks Listview vorgenommen, en el ahora una Función enthalten es, el el erste angezeige Zeilen-Nr ermittelt. Werde lo parallel darüber versuchen.
 
Gruß Thomas
Windows XP SP2, XProfan X2
16.08.2009  
 



Funktioniert con usted esta muy analoge Solución?
KompilierenMarcaSeparación
 {$i}
 $H WINDOWS.PH
 $H MESSAGES.PH
 $H COMMCTRL.PH
Declare Titel$,hGrid&,hGrid1&

Proc GridBox1

    Titel$ = "Links;0;180;Mitte;0;100;Rechts;0;80"
    hGrid&   = Create("GridBox", %hWnd, Titel$, 1, 30, 30, 200, 190)
    AddString(hGrid&, "AB|DEF|0123")
    AddString(hGrid&, "GHI|J23KL|012345")
    AddString(hGrid&, "FGRT|MNOP|PQR|")
    AddString(hGrid&, "STU||V")
    AddString(hGrid&, "ABCD12|STUVW|XYZ0")
    AddString(hGrid&, "ABCD34|stuvw|999,00")
    AddString(hGrid&, "Abcd45|STUVW|-111,11")
    AddString(hGrid&, "Abcd56|StUVW|2.111,11")

EndProc

Proc GridBox2

    Titel$ = "Links;0;180;Mitte;0;100;Rechts;0;80"
    hGrid1&   = Create("GridBox", %hWnd, Titel$, 1, 240, 30, 200, 190)
    AddString(hgrid1&, "AB|DEF|0123")
    AddString(hgrid1&, "GHI|J23KL|012345")
    AddString(hgrid1&, "FGRT|MNOP|PQR|")
    AddString(hgrid1&, "STU||V")
    AddString(hgrid1&, "ABCD12|STUVW|XYZ0")
    AddString(hgrid1&, "ABCD34|stuvw|999,00")
    AddString(hgrid1&, "Abcd45|STUVW|-111,11")
    AddString(hgrid1&, "Abcd56|StUVW|2.111,11")

EndProc

SubClassProc

    if subClassMessage(hGrid&,~wm_paint)

        sendMessage(hGrid1&,~lvm_scroll,~getScrollPos(hGrid&,0)-~getScrollPos(hGrid1&,0),(~getScrollPos(hGrid&,1)-~getScrollPos(hGrid1&,1))*hiword(sendMessage(hGrid1&,~lvm_getItemSpacing,1,0)))

    endif

endproc

SetTrueColor 1
WindowStyle 538
WindowTitle "Scroll nur linke Gridbox"
Window 100,100-600,400
Cls ~GetSysColor(15)
UseFont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
GridBox1
GridBox2
SubClass hGrid&,1

While 1

    WaitInput
    case %key=2: Break

Wend

SubClass hGrid&,0
 
16.08.2009  
 




Thomas
Freier
JA!! Gracias para el elegante Solución, como allgemein gültig.
Uff! Für mich muß Yo nun versuchen de el Chiste breve para H&V el H- y V-Teil a separieren, como el beiden Listen horizontal jede para se y sólo vertikal gemeinsam gescrollt voluntad debería.
 
Gruß Thomas
Windows XP SP2, XProfan X2
17.08.2009  
 



Einfach el 3. Param de SendMessage en 0 conjunto, wParam en lvm_scroll es para el X-Achse como:
KompilierenMarcaSeparación
sendMessage(hGrid1&,~lvm_scroll,0,(~getScrollPos(hGrid&,1)-~getScrollPos(hGrid1&,1))*hiword(sendMessage(hGrid1&,~lvm_getItemSpacing,1,0)))
>
 
17.08.2009  
 




Thomas
Freier
Ein kleines Ejemplo para XProfan 11.2 con el "Scrollaktionen". Mit el Scrollen des Bildes (Monate) überm Listview bin Todavía no zufrieden. Der Druck es z.Z. no optimiert. Como siempre : Nutzung en propio Risiko.

543 kB
Hochgeladen:29.08.2009
Ladeanzahl34
Descargar
 
Gruß Thomas
Windows XP SP2, XProfan X2
29.08.2009  
 



In el SubClassProc hast "mein" wm_paint ausgetauscht, deshalb aber reagiert el Aktualisieren siempre sólo (1 Frame/Message) a spät. (lo restos sólo wm_paint)
 
29.08.2009  
 




Thomas
Freier
Hab sí beides como Ejemplo en el Code gelassen. Jeder Clic en un el beiden Listviews löst una wm_paint de. Es beim Editieren nervig.
Leider scrollen beide Listen con el Mausrad ahora sólo, si no Liste el enfoque ha.
 
Gruß Thomas
Windows XP SP2, XProfan X2
30.08.2009  
 



Respuesta


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

1.825 Views

Untitledvor 0 min.
RudiB.11.04.2022
Langer11.01.2021
rquindt06.06.2016
Ernst21.05.2016
Más...

Themeninformationen

Dieses Thema ha 2 subscriber:

Thomas Freier (5x)
iF (4x)


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