Foro | | | | Detlef Jagolski | Ciao,
Habe ein Problem: Ich benutze zwei Listview-Controls. Beide sollen synchron scrollen. Die Scrollbalken bewegen sich auch synchron. Jedoch mehr auch nicht.
Vielleicht weiß jemand Rat.
Saluto Detlef KompilierenMarkierenSeparieren $P+
Set("ErrorLevel",1)
Set("FastMode",1)
WINDOWS.PH
MESSAGES.PH
SHELLAPI.PH
STRUCTS.PH
COMMCTRL.PH
LISTVIEW_FUNKTIONEN.INC
var lvDll& = UseDll("Listview.dll")
Proc GridBox1
Declare SortGridBox1#
Declare ColorGridBox1#
Dim SortGridBox1#,48
Dim ColorGridBox1#,64
Long SortGridBox1#,0=2
Long SortGridBox1#,4=1
Long SortGridBox1#,8=1
Long SortGridBox1#,12=1
Long SortGridBox1#,16=1
Long SortGridBox1#,20=1
Long SortGridBox1#,24=1
Long SortGridBox1#,28=1
Long SortGridBox1#,32=1
Long SortGridBox1#,36=1
Long SortGridBox1#,40=1
Long SortGridBox1#,44=1
Clear ColorGridBox1# bereich# mit Nullen löschen, wichtig!
Byte ColorGridBox1#,0=0
Byte ColorGridBox1#,1=1
Byte ColorGridBox1#,2=1
Byte ColorGridBox1#,3=1
Byte ColorGridBox1#,4=0
Byte ColorGridBox1#,5=0
Byte ColorGridBox1#,6=0
Byte ColorGridBox1#,7=0
Byte ColorGridBox1#,8=0
Byte ColorGridBox1#,9=0
Byte ColorGridBox1#,10=0
GridBox1& = CreateListView(%hwnd,%hinstance,0,RGB(255,255,255),-1,$31)
SetFont GridBox1&,ListViewFont3&
var Headerh& = SendMessage(GridBox1&,$101F,0,0)
SetFont Headerh&,ListViewFont&
InsertColumn GridBox1&,"Artikel-Nr.",80,0
InsertColumn GridBox1&,"Bezeichnung 1",200,0
InsertColumn GridBox1&,"Bezeichnung 2",200,0
InsertColumn GridBox1&,"Marke",100,0
InsertColumn GridBox1&,"Artikel-Nr.",80,0
InsertColumn GridBox1&,"Bezeichnung 1",200,0
InsertColumn GridBox1&,"Bezeichnung 2",200,0
InsertColumn GridBox1&,"Marke",100,0
InsertColumn GridBox1&,"Artikel-Nr.",80,0
InsertColumn GridBox1&,"Bezeichnung 1",200,0
InsertColumn GridBox1&,"Bezeichnung 2",200,0
InsertColumn GridBox1&,"Marke",100,0
ASortListview(GridBox1&,SortGridBox1#,12)
ShowListView(GridBox1&,20,20,832,252)
RaiseColumns(GridBox1&,ColorGridBox1#,RGB(0,0,158),RGB(193,247,239))
Dispose SortGridBox1#
Dispose ColorGridBox1#
SetLineNumbers(GridBox1&,1,0)
EndProc
Proc GridBox2
Declare SortGridBox2#
Declare ColorGridBox2#
Dim SortGridBox2#,48
Dim ColorGridBox2#,64
Long SortGridBox2#,0=2
Long SortGridBox2#,4=1
Long SortGridBox2#,8=1
Long SortGridBox2#,12=1
Long SortGridBox2#,16=1
Long SortGridBox2#,20=1
Long SortGridBox2#,24=1
Long SortGridBox2#,28=1
Long SortGridBox2#,32=1
Long SortGridBox2#,36=1
Long SortGridBox2#,40=1
Long SortGridBox2#,44=1
Clear ColorGridBox2# bereich# mit Nullen löschen, wichtig!
Byte ColorGridBox2#,0=0
Byte ColorGridBox2#,1=1
Byte ColorGridBox2#,2=1
Byte ColorGridBox2#,3=1
Byte ColorGridBox2#,4=0
Byte ColorGridBox2#,5=0
Byte ColorGridBox2#,6=0
Byte ColorGridBox2#,7=0
Byte ColorGridBox2#,8=0
Byte ColorGridBox2#,9=0
Byte ColorGridBox2#,10=0
GridBox2& = CreateListView(%hwnd,%hinstance,0,RGB(255,255,255),-1,$31)
SetFont GridBox2&,ListViewFont3&
var Headerh& = SendMessage(GridBox2&,$101F,0,0)
SetFont Headerh&,ListViewFont&
InsertColumn GridBox2&,"Artikel-Nr.",80,0
InsertColumn GridBox2&,"Bezeichnung 1",200,0
InsertColumn GridBox2&,"Bezeichnung 2",200,0
InsertColumn GridBox2&,"Marke",100,0
InsertColumn GridBox2&,"Artikel-Nr.",80,0
InsertColumn GridBox2&,"Bezeichnung 1",200,0
InsertColumn GridBox2&,"Bezeichnung 2",200,0
InsertColumn GridBox2&,"Marke",100,0
InsertColumn GridBox2&,"Artikel-Nr.",80,0
InsertColumn GridBox2&,"Bezeichnung 1",200,0
InsertColumn GridBox2&,"Bezeichnung 2",200,0
InsertColumn GridBox2&,"Marke",100,0
ASortListview(GridBox2&,SortGridBox2#,12)
ShowListView(GridBox2&,20,280,832,262)
RaiseColumns(GridBox2&,ColorGridBox2#,RGB(0,0,158),RGB(193,247,239))
Dispose SortGridBox2#
Dispose ColorGridBox2#
SetLineNumbers(GridBox2&,1,0)
EndProc
Proc OnApplicationExit
$I C:PROGRAMMEPRFELLOWLIBLISTVIEW_DISPOSE.INC
SubClass GridBox1&,0
SubClass GridBox2&,0
Dispose HScrollInfo#
Dispose VScrollInfo#
Dispose ColumnUpdate#
EndProc
Declare appexit%
Declare GridBox1&
Declare GridBox2&
Declare GridScrollPos1&
Declare GridScrollPos2&
Declare HScrollInfo#
Declare VScrollInfo#
Declare ScrollPos&
Declare ColumnUpdate#
Struct ScrollInfo = ~SCROLLINFO
Dim HScrollInfo#,ScrollInfo
Dim VScrollInfo#,ScrollInfo
Dim ColumnUpdate#,768
var ListViewFont& = Create("Font","MS Sans Serif",13,0,1,0,0)
var ListViewFont3& = Create("FONT","Arial",16,0,0,0,0)
SubClassProc
If SubClassMessage(GridBox1&, ~WM_HSCROLL)
HScrollInfo#.cbSize& = SizeOf(HScrollInfo#)
HScrollInfo#.fMask& = ~SIF_ALL
~GetScrollInfo(GridBox1&,~SB_HORZ,HScrollInfo#)
~SetScrollInfo(GridBox2&,~SB_HORZ,HScrollInfo#,1)
GetColumnUpdate(GridBox1&,ColumnUpdate#)
SetColumnUpdate(GridBox2&,ColumnUpdate#)
~UpdateWindow(GridBox2&)
Set("WinProc",1)
ElseIf SubClassMessage(GridBox2&, ~WM_HSCROLL)
HScrollInfo#.cbSize& = SizeOf(HScrollInfo#)
HScrollInfo#.fMask& = ~SIF_ALL
~GetScrollInfo(GridBox2&,~SB_HORZ,HScrollInfo#)
~SetScrollInfo(GridBox1&,~SB_HORZ,HScrollInfo#,1)
GetColumnUpdate(GridBox2&,ColumnUpdate#)
SetColumnUpdate(GridBox1&,ColumnUpdate#)
~UpdateWindow(GridBox1&)
Set("WinProc",1)
EndIf
EndProc
SetTrueColor 1
WindowStyle $003F
WindowTitle "DesignForm"
Window %maxX + 5,114 - 887,586
Cls ~GetSysColor(15)
UseFont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
GridBox1
GridBox2
Set("SubClassMode",1)
SubClass GridBox1&,1
SubClass GridBox2&,1
SetWindowPos %hwnd = 207,114 - 887,586;0
WhileNot appexit%
WaitInput
If %key=2
appexit%=1
ElseIf GetFocus(GridBox1&)
ElseIf GetFocus(GridBox2&)
ElseIf %key = 4
Fenstergröße
ElseIf %key = 5
Hilfe
EndIf
Wend
OnApplicationExit
|
| | | XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 03.09.2008 ▲ |
| |
| | | Das Absetzen der Nachricht an die 2. Scrollbar reicht (naturalmente) nicht aus, die Scrollbar selbst muss dem Parent naturalmente auch noch die Info zukommen lassen als ob es bewegt würde. |
| | | | |
| | Detlef Jagolski | Hallo IF,
und wie würde die (Info) Aussehen?
Saluto
Detlef |
| | | XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 03.09.2008 ▲ |
| |
| | Frank Abbing | Hast du schon die Message LVM_SCROLL ausprobiert? |
| | | | |
| | | Ungefähr so, wie die Info an das hWnd aussieht, wenn eine daraufliegende Scrollbar bewegt wurde. Das wiederum kannst Du leicht testen. Schaue Dir hierzu z.B. [...] oder eher [...] an.
Es potuto sein das es ausreicht wenn Du einfach nur wm_scroll an das Listview sendest, so würde ich mich herantasten. |
| | | | |
| | Detlef Jagolski | | | | XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 03.09.2008 ▲ |
| |
| | | Hmpf jetzt wollte ich es testen und muss feststellen, dass obiger Code garnicht lauffähig ist da nicht komplett. |
| | | | |
| | Frank Abbing | Ja, auch festgestellt. XPSE meldet ebenfalls noch Tonnen an kleinen Fehlern. |
| | | | |
| | | Drücke doch W im xpse (kein Reim!) , dann hast Du die Warnings im Notepad zum einfachen Rauskopieren. |
| | | | |
| | Detlef Jagolski | Bei mir corre er, ohne Fehlermeldung? |
| | | XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 03.09.2008 ▲ |
| |
| | Jörg Sellmeyer | Aber nicht so, wie er oben steht! Du hast einfach nur Windows.ph drinstehen und nicht $H Windows.ph. Das Gleiche bei LISTVIEW_FUNKTIONEN.INC anstatt $I LISTVIEW_FUNKTIONEN.INC. Dann ist die LISTVIEW_DISPOSE.INC noch mit festem Pfad eingebunden. Sind nur Kleinigkeiten, machen einem Tester aber das Leben unnötig schwer. Nur mal als Tip - Du kannst auch einfach folgendes schreiben: KompilierenMarkierenSeparierenLong SortGridBox2#,0=2,1,1,1,... > |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 03.09.2008 ▲ |
| |
| | Frank Abbing | Detlef, deine .ph enthält erweiterte Definitionen, die uns fehlen. Fehler meldet der Precompiler XPSE, der schon fast zum XProfan-Standart gehört. |
| | | | |
|
AnswerThemeninformationenDieses Thema hat 5 subscriber: |