| |
|
|
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
|
|
|
| |
|
|
|
| Wenn Yo Su código starte, entonces scrollt el rechte GridBox con el Linken con.
Was genau se porque passieren? |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
| 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
|
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
| |
|
| |
|
|
|
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. |
|
|
| |
|
|
|
| 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) |
|
|
| |
|
|
|
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. |
|
|
| |
|
|