| |
|
|
Thomas Freier | je voulais volontiers une zweite Gridbox avec qui Ersten scrollen. Horizontal ist OK. Vertikal bekomme je simple pas hin et habe ici aussi aucun Hinweise (sauf MultiEdit usw.) trouvé. Kennt einer une Solution? KompilierenMarqueSéparation $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
|
|
|
| |
|
|
|
| si je Deinen Code starte, ensuite scrollt qui rechte GridBox avec qui Linken avec.
quoi oui c'est ca soll car passer? |
|
|
| |
|
|
|
Thomas Freier | oui, so était cela gedacht, dass qui sichtbare le contenu qui rechten Box dem qui Linken gleicht, si le Linke gescrollt wird. Z.Z. ca va mais seulement horizontal. Habe mir aussi nochmal Franks Listview vorgenommen, dans qui maintenant une Funktion enthalten ist, qui la première angezeige Zeilen-Nr ermittelt. Werde es parallèle par-dessus versuchen. |
|
|
| |
|
|
|
| Funktioniert chez Dir cet très analoge Solution? KompilierenMarqueSéparation {$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!! merci pour qui elegante Solution, là allgemein gültig. Uff! Pour mich doit je eh bien versuchen aus dem Einzeiler pour H&V den H- et V-partie trop separieren, là qui beiden Listen horizontal chacun pour sich et seulement vertikal gemeinsam gescrollt volonté devoir. |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Thomas Freier | un kleines Beispiel pour XProfan 11.2 avec den "Scrollaktionen". avec dem Scrollen des Bildes (Monate) überm Listview suis je encore pas zufrieden. qui Druck ist z.Z. pas optimiert. comment toujours : Nutzung sur eigenes Risiko. |
|
|
| |
|
|
|
| dans qui SubClassProc la hâte "mein" wm_paint ausgetauscht, c'est pourquoi mais reagiert cela Aktualisieren toujours seulement (1 Frame/Message) trop spät. (es bleibt seulement wm_paint) |
|
|
| |
|
|
|
Thomas Freier | Hab oui beides comme Beispiel im Code gelassen. chacun Klick dans einem qui beiden Listviews löst un wm_paint aus. c'est beim éditer nervig. malheureusement scrollen beide Listen avec dem Mausrad maintenant seulement, si aucun liste den Concentrer hat. |
|
|
| |
|
|