Seite 1 von 1

StyledTextCtrl / RichTextCtrl: Markierte Zeilen

Verfasst: Freitag 2. Februar 2007, 19:08
von fred.reichbier
Hallo,

wie kann ich in einem StyledTextCtrl eine Liste der Zeilennummern aller markierten Zeilen erhalten?
Ziel wäre es, die markierten Zeilen einzurücken oder auszurücken. Ich weiss, dass es dafür Tab() gibt, aber die macht nicht wirklich, was ich will.
Ich habe auch schon selber einen Ansatz mit GetSelection, der funktioniert aber nicht wirklich.
Für einen guten Ansatz oder für einen Codeschnipsel wäre ich sehr dankbar :D

MfG,

Fred

Verfasst: Samstag 24. Februar 2007, 16:22
von ramin
Hallo,

ich vermute

Code: Alles auswählen

(selStart,selEnd)=self.GetSelection()
hast Du schon probiert ?

Es geht also darum festzustellen, welche Zeilen zwischen selStart und selEnd liegen, oder?

Grüße
ramin

Verfasst: Samstag 24. Februar 2007, 17:21
von ramin
Also mal ein Versuch:

Code: Alles auswählen

#! /usr/bin/env python
# -*- coding: ISO-8859-1 -*-

s="""Hallo das ist ein Test,

wie er auch in der 
Realität vorkommen könnte.


"""

def selectionToLines(selStart,selEnd):
    ar=s.split('\n')
    if __debug__:
        print '-'*80
        n=0
        for i in ar:
            print n,'>',i
            n+=1
        print 'looking for:'
        print s[selStart:selEnd] 
    arRet=[]
    l=0
    numLine=0
    bBeginFound=False
    for i in ar:
        l+=len(i)
        if l>selStart:
            bBeginFound=True
        if bBeginFound:
            arRet.append(numLine)
        if l>selEnd:
            break
        numLine+=1
    return arRet

print selectionToLines(0,3)
print selectionToLines(0,30)
print selectionToLines(0,300)
print selectionToLines(30,300)
Alles Gute
Ramin