Italia
Foro

Listview-Controls synchron scrollen

 

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.
 
03.09.2008  
 




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?
 
03.09.2008  
 



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.
 
03.09.2008  
 




Detlef
Jagolski
Hallo Frank,
KompilierenMarkierenSeparieren
SendMessage(GridBox1&,~LVM_SCROLL,HScrollInfo#.nPos& ,0)
>

habe ich, aber ist nicht synchron.

Saluto

Detlef
 
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.
 
03.09.2008  
 




Frank
Abbing
Ja, auch festgestellt. XPSE meldet ebenfalls noch Tonnen an kleinen Fehlern.
 
03.09.2008  
 



Drücke doch W im xpse (kein Reim!) , dann hast Du die Warnings im Notepad zum einfachen Rauskopieren.
 
03.09.2008  
 




Detlef
Jagolski
Bei mir corre er, ohne Fehlermeldung?

61 kB
Hochgeladen:03.09.2008
Downloadcounter85
Download
 
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:
KompilierenMarkierenSeparieren
Long 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.
 
03.09.2008  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.571 Views

Untitledvor 0 min.
RudiB.14.01.2022
Jörg Sellmeyer04.06.2020
Member 154727723.09.2018
Georg06.02.2018
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie