Seltsames Verhalten von TextCtrl
Verfasst: Freitag 1. Oktober 2004, 19:14
Hoi
hatte gestern eine Begegnung der dritten Art mit TextCtrl
Und zwar möchte ich einfach die ersten und letzten 10 Zeichen in einem best. Output, der auf ein TextCtrl gelenkt wird einfärben. Angenommen bei allen "somethings" hier handelt es sich um Strings und TextField ist ein TextCtrl-Feld, dann funktioniert folgender Code:
während folgender Code den gesamten Output hier blau einfärbt, auch self.something2:
something1 und something3 sind genau zehn Zeichen lang. something2 ist von unbestimmter Länge und hängt von der Eingabe des Anwenders ab. Deshalb verwende ich zweimal GetLastPosition().
Gut, habe ja was ich wollte, aber kann mir jemand erklären wo hier der Fehler in meiner Annahme ist, daß beide snippets bzgl. des Einfärbens der somethings identisch sein müßten - abgesehen von den Füllzeichen ("'") natürlich? Der wesentliche Faktor war, daß ich irgendetwas von x abziehen muß, sonst funktioniert es fehlerhaft. Deshalb brauchte ich natürlich die Füllzeichen, sonst wird ja nicht korrekt eingefärbt.
Wäre toll, wenn mich jemand "erleuchten" könnte.
Gruß,
Christian
hatte gestern eine Begegnung der dritten Art mit TextCtrl

Und zwar möchte ich einfach die ersten und letzten 10 Zeichen in einem best. Output, der auf ein TextCtrl gelenkt wird einfärben. Angenommen bei allen "somethings" hier handelt es sich um Strings und TextField ist ein TextCtrl-Feld, dann funktioniert folgender Code:
Code: Alles auswählen
self.TextField.write(self.something1 + "'")
x = self.TextField.GetLastPosition()
self.TextField.SetStyle(x-11,x-1,wx.TextAttr("Blue"))
self.TextField.write(self.something2 + "'")
self.TextField.write(self.something3 + '\n')
x = self.TextField.GetLastPosition()
self.TextField.SetStyle(x-11,x-1,wx.TextAttr("Blue"))
Code: Alles auswählen
self.TextField.write(self.something1)
x = self.TextField.GetLastPosition()
self.TextField.SetStyle(x-10,x,wx.TextAttr("Blue"))
self.TextField.write(self.something2)
self.TextField.write(self.something3 + '\n')
x = self.TextField.GetLastPosition()
self.TextField.SetStyle(x-10,x,wx.TextAttr("Blue"))
Gut, habe ja was ich wollte, aber kann mir jemand erklären wo hier der Fehler in meiner Annahme ist, daß beide snippets bzgl. des Einfärbens der somethings identisch sein müßten - abgesehen von den Füllzeichen ("'") natürlich? Der wesentliche Faktor war, daß ich irgendetwas von x abziehen muß, sonst funktioniert es fehlerhaft. Deshalb brauchte ich natürlich die Füllzeichen, sonst wird ja nicht korrekt eingefärbt.
Wäre toll, wenn mich jemand "erleuchten" könnte.
Gruß,
Christian