Ersteinmal Danke für die Tipps...
Allerdings komme ich immer noch nicht klar. Ich möchte "nur", daß das linke EditorGadget genause scrollt
wie das rechte. Das muss doch gehen.
Ich habe hier mal einen Ansatz von mir gepostet. Vielleicht könnt ihr mir da weiterhelfen warum das nicht
funktioniert. Wo ist denn da mein Denkfehler?
Code: Alles auswählen
Enumeration
#WIN_INTERFACE
#EDT_LEFT
#EDT_RIGHT
EndEnumeration
If OpenWindow(#WIN_INTERFACE, 0, 0, 500, 300, "EditorGadget Scrolltest", #PB_Window_SystemMenu)
;Linkes EditorGadget erstellen und Eigenschaften setzen
EditorGadget (#EDT_LEFT , 5, 5, 245, 290, #PB_Editor_ReadOnly)
SetGadgetColor(#EDT_LEFT , #PB_Gadget_BackColor , $DEDEDE) ;Hintergrundfarbe setzen
SetGadgetColor(#EDT_LEFT , #PB_Gadget_FrontColor, $A0A0A0) ;Schriftfarbe setzen
SendMessage_ (GadgetID(#EDT_LEFT), #EM_SHOWSCROLLBAR, #SB_VERT, #False) ;Vertikalen Scrollbalken "verstecken"
;Rechtes EditorGadget erstellen und Eigenschaften setzen
EditorGadget (#EDT_RIGHT, 250, 5, 240, 290)
;EditorGadgets mit einfachem Text füllen"
For row = 1 To 100
AddGadgetItem(#EDT_LEFT , -1, "LINE: " + RSet(Str(row), 3, "0"))
AddGadgetItem(#EDT_RIGHT, -1, "LINE: " + RSet(Str(row), 3, "0"))
Next row
Repeat
Event.l = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case #EDT_RIGHT
;Erste "sichtbare Zeile" des rechten EditorGadgets ermitteln
fLine.l = SendMessage_(GadgetID(#EDT_RIGHT), #EM_GETFIRSTVISIBLELINE, 0, 0)
Debug fLine
;Erste "sichtbare Zeile" des linken EditorGadgets setzen
SendMessage_(GadgetID(#EDT_LEFT), #EM_LINESCROLL, 0, fLine)
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf