Page 1 of 1

Suche einen Lösungsansatz

Posted: Wed Feb 13, 2008 12:02 pm
by NK
Hallo Kollegen,

ich suche einen Lösungsweg:

Aufgabe:
Ich habe 4 x TSBROWSE in einem Window nebeneinander, gefüllt mit Arrays zu je 50 Elementen.
Ich habe die Vert.Scrollbars der Browse-Objekte unterdrückt und eine zentrale Scrollbar definiert.

Ich möchte nun erreichen, dass über diese zentrale Scrollbar die 4 TSBROWSE synchron gescrollt werden.

Ich habe es versucht mit ...

Code: Select all

   @ 43, 1 SCROLLBAR oSbr1 OF oWnd VERTICAL RANGE 1, 50 ;
      ON UP       ( oArray1:VScroll( SB_LINEUP, 0 ) ,oArray1:Refresh(.t.) ,;
                    oArray2:VScroll( SB_LINEUP, 0 ) ,oArray2:Refresh(.t.) ,;
                    oArray3:VScroll( SB_LINEUP, 0 ) ,oArray3:Refresh(.t.) ,;
                    oArray4:VScroll( SB_LINEUP, 0 ) ,oArray4:Refresh(.t.)) ;
      ON DOWN     ( oArray1:VScroll( SB_LINEDOWN, 0 ),oArray1:Refresh(.t.),;
                    oArray1:VScroll( SB_LINEDOWN, 0 ),oArray1:Refresh(.t.),;
                    oArray2:VScroll( SB_LINEDOWN, 0 ),oArray2:Refresh(.t.),;
                    oArray3:VScroll( SB_LINEDOWN, 0 ),oArray3:Refresh(.t.),;
                    oArray4:VScroll( SB_LINEDOWN, 0 ),oArray4:Refresh(.t.)) 
... funktioniert aber nicht. Wenn in den einzelnen Browse-Objekten unterschiedliche Zeilen selektiert sind.

Hat jemand einen Lösungsansatz für mich ?? Ich seh den Wald vor lauter Bäume nicht ...

Viele Grüße, Norbert

Posted: Thu Feb 14, 2008 8:44 am
by StefanHaupt
Hallo Norbert,

hat jedes Browseobjekt eine eigene Datenbank oder hast du nur eine Dbf geöffnet ?

Wenn du 4 Dbf hast, könntest du das vielleicht über Relationen lösen, eine Masterdatenbank und 3 Abhängigkeiten.

Oder, eine andere Idee, versuch mal, das zentrale Scrollbarobjekt den einzelnen Browseobjekte zuzuweisen, also oBrw:oVScroll := oScroll.

Gruß
Stefan

Posted: Thu Feb 14, 2008 8:50 am
by StefanHaupt
Ups, ich sehe grade, du hast 4 Arrays, aber auch da könntest du Abhängigkeite programmieren mit ON CHANGE.

Aber noch eine Idee, warum nutzt du nicht einfach ::Skip()

...
ON UP oArray1:Skip(1), oArray1:Refresh() usw.
...


Gruß
Stefan

Posted: Fri Feb 15, 2008 10:04 am
by NK
Hallo Stefan,

danke für die Anregungen. Werde mal ans testen gehen.

Gruss, Norbert