Deutsch
Eingangshalle

Fehler beim Scrollen...

 
- Seite 1 -



RudiB.
Hallo zusammen,

habe mal wieder etwas...
beim scrollen über das Control VSroll bleiben sehr oft die Zeilen nicht "im Raster".
Keine Ahnung wie ich es sonst ausdrücken soll.



Kann man das irgendwie fixen, das die Zeilen "im Raster bleiben" und nicht nur die Hälfte angezeigt wird (oberste Zeile !!)

23 kB
Hochgeladen: vor 19 Tagen
Ladeanzahl3
Herunterladen
 
XProfan X4
Xprofan X4

Rudolf Beske / München
vor 19 Tagen  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »


Georg
Teles
Guten Morgen,

bin seit einem Jahr raus aus der Programmierung. Habe zwecks Style nichts passendes gefunden, nur Workarounds welche die "Justierung der Zeile" nachträglich vornehmen ... als Denkanstoß hier ein kleines Beispiel, umständlich, ist aber vllt nützlich: (bei Edit und Control erst hineinklicken, dann dessen VScroll betätigen weil Focus/Child, kann sodann mit ProcAddr verbessert werden)
Cls
var text$ = GenTxt()
Declare pre_pos&

Proc GenTxt

    Declare tx$
    tx$ = ""

    WhileLoop 0,200

        tx$ = tx$+"Text_"+Str$(&loop)+"\n"

    EndWhile

    tx$ = tx$+"ENDE"
    Return tx$

EndProc

locate 0,0
print "RichEdit"
locate 0,27
print "Edit (Control)"
locate 0,54
print "VScroll"
var red& = Create("richedit", %hWnd, text$, 5, 25, 200, 200)
var red2& = Control("Edit", "", $50200044, 205, 25, 200, 200, %hWnd, 0, %hInstance)
var vsc& = Create("VScroll",%hWnd,"",422,25,20,200)
'ACHTUNG Dimension der VScroll beachten ! am Besten nach Zeilen minus Sichtbare Zeilen
'SetScrollRange vsc&,0,190
'$00BA 'em_GetLineCount - Sichtbare Zeilen (hier 11)
SetScrollRange vsc&,0,SendMessage(red&,$00BA,0,0)-11
SetText red&,Text$
SetText red2&,Text$

While 1=1

    Waitinput
    'Falls Focus auf VScroll

    If GetFocus(vsc&)

        SendMessage(red&,$00B6,0,GetScrollPos(vsc&)-pre_pos&)
        SendMessage(red2&,$00B6,0,GetScrollPos(vsc&)-pre_pos&)
        pre_pos& = GetScrollPos(vsc&)
        locate 3,57
        print "GoTO Line "+Str$(pre_pos&)+Space$(3)

    EndIf

    'Falls Focus auf RichEdit

    If GetFocus(red&)

        SendMessage(red&,$00B6,0,GetScrollPos(vsc&)-pre_pos&)
        SendMessage(red2&,$00B6,0,SendMessage(red&,$00CE,0,0)-pre_pos&)
        pre_pos& = SendMessage(red&,$00CE,0,0)
        SetScrollPos vsc&, pre_pos&
        locate 3,57
        print "GoTO Line "+Str$(pre_pos&)+Space$(3)

    EndIf

    'Falls Focus auf ControlEDIT

    If GetFocus(red2&)

        SendMessage(red2&,$00B6,0,GetScrollPos(vsc&)-pre_pos&)
        SendMessage(red&,$00B6,0,SendMessage(red2&,$00CE,0,0)-pre_pos&)
        pre_pos& = SendMessage(red2&,$00CE,0,0)
        SetScrollPos vsc&, pre_pos&
        locate 3,57
        print "GoTO Line "+Str$(pre_pos&)+Space$(3)

    EndIf

endwhile


Grüße
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

PC: i7-10700K | 32 Gb | 1x NVMe | 2x SSD | 1x HDD |
Srv: i9-9900K | 32 Gb | 2x SSD | 6x HDD |
Srv. 24/7: i5-8279U | 16 Gb | 1x NVMe | 1x SSD |
Testmachine: J1900 | 8 Gb | Variable Drives |
vor 5 Tagen  
 




RudiB.
noch ein kleiner Nachtrag...
das ist nur bei einem Richedit so, im Multiedit funktioniert das scrollen wirklich Zeilenweise.
Ich brauche das aber auch im Richedit so...
 
XProfan X4
Xprofan X4

Rudolf Beske / München
vor 18 Tagen  
 




Georg
Teles
Guten Morgen,

bin seit einem Jahr raus aus der Programmierung. Habe zwecks Style nichts passendes gefunden, nur Workarounds welche die "Justierung der Zeile" nachträglich vornehmen ... als Denkanstoß hier ein kleines Beispiel, umständlich, ist aber vllt nützlich: (bei Edit und Control erst hineinklicken, dann dessen VScroll betätigen weil Focus/Child, kann sodann mit ProcAddr verbessert werden)
Cls
var text$ = GenTxt()
Declare pre_pos&

Proc GenTxt

    Declare tx$
    tx$ = ""

    WhileLoop 0,200

        tx$ = tx$+"Text_"+Str$(&loop)+"\n"

    EndWhile

    tx$ = tx$+"ENDE"
    Return tx$

EndProc

locate 0,0
print "RichEdit"
locate 0,27
print "Edit (Control)"
locate 0,54
print "VScroll"
var red& = Create("richedit", %hWnd, text$, 5, 25, 200, 200)
var red2& = Control("Edit", "", $50200044, 205, 25, 200, 200, %hWnd, 0, %hInstance)
var vsc& = Create("VScroll",%hWnd,"",422,25,20,200)
'ACHTUNG Dimension der VScroll beachten ! am Besten nach Zeilen minus Sichtbare Zeilen
'SetScrollRange vsc&,0,190
'$00BA 'em_GetLineCount - Sichtbare Zeilen (hier 11)
SetScrollRange vsc&,0,SendMessage(red&,$00BA,0,0)-11
SetText red&,Text$
SetText red2&,Text$

While 1=1

    Waitinput
    'Falls Focus auf VScroll

    If GetFocus(vsc&)

        SendMessage(red&,$00B6,0,GetScrollPos(vsc&)-pre_pos&)
        SendMessage(red2&,$00B6,0,GetScrollPos(vsc&)-pre_pos&)
        pre_pos& = GetScrollPos(vsc&)
        locate 3,57
        print "GoTO Line "+Str$(pre_pos&)+Space$(3)

    EndIf

    'Falls Focus auf RichEdit

    If GetFocus(red&)

        SendMessage(red&,$00B6,0,GetScrollPos(vsc&)-pre_pos&)
        SendMessage(red2&,$00B6,0,SendMessage(red&,$00CE,0,0)-pre_pos&)
        pre_pos& = SendMessage(red&,$00CE,0,0)
        SetScrollPos vsc&, pre_pos&
        locate 3,57
        print "GoTO Line "+Str$(pre_pos&)+Space$(3)

    EndIf

    'Falls Focus auf ControlEDIT

    If GetFocus(red2&)

        SendMessage(red2&,$00B6,0,GetScrollPos(vsc&)-pre_pos&)
        SendMessage(red&,$00B6,0,SendMessage(red2&,$00CE,0,0)-pre_pos&)
        pre_pos& = SendMessage(red2&,$00CE,0,0)
        SetScrollPos vsc&, pre_pos&
        locate 3,57
        print "GoTO Line "+Str$(pre_pos&)+Space$(3)

    EndIf

endwhile


Grüße
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

PC: i7-10700K | 32 Gb | 1x NVMe | 2x SSD | 1x HDD |
Srv: i9-9900K | 32 Gb | 2x SSD | 6x HDD |
Srv. 24/7: i5-8279U | 16 Gb | 1x NVMe | 1x SSD |
Testmachine: J1900 | 8 Gb | Variable Drives |
vor 5 Tagen  
 




RudiB.
Hallo Georg,

... danke, das ist, glaube ich die Lösung. Muss ich in Ruhe ausprobieren.
Aber auf den ersten Blick genau das richtige, was ich gesucht habe.
Ich probiere das heute Abend mal für meinen Fall aus und gebe dann Feedback.

Gruß Rudi
 
XProfan X4
Xprofan X4

Rudolf Beske / München
vor 5 Tagen  
 




RudiB.
...schon ausprobiert.... TREFFER....

Danke Georg, das wars...

Gruß aus München
Rudi
 
XProfan X4
Xprofan X4

Rudolf Beske / München
vor 5 Tagen  
 




Georg
Teles
Guten Abend, na wunderbar

Grüße
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

PC: i7-10700K | 32 Gb | 1x NVMe | 2x SSD | 1x HDD |
Srv: i9-9900K | 32 Gb | 2x SSD | 6x HDD |
Srv. 24/7: i5-8279U | 16 Gb | 1x NVMe | 1x SSD |
Testmachine: J1900 | 8 Gb | Variable Drives |
vor 5 Tagen  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

106 Betrachtungen

Unbenanntvor 0 min.
E.T.Gestern (21:41)
Roland SchäfferVorgestern (11:17)
Manfred Barei vor 4 Tagen
Peter Max Müller vor 4 Tagen
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

RudiB. (4x)
Georg Teles (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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