Hi Alexandre, Thanks a lot for your reply. I'll try to attach the source file to this message, however not sure if this mailing list allows attachments, so I have uploaded it also to my ftp side: ftp://ftp.uliy.com/pub/python/te.py
I tried to run this file on the smartphone and on PocketPc, the same result. Was playing with OnOpen method detaching the Edit control from the frame, adding the text and attaching it again, still the same, cursor does not move. Would so much appreciate any comments. Igor. From: Alexandre Delattre <[EMAIL PROTECTED]> Subject: Re: [PythonCE] Programaticly moving cursor in multi-line edit control To: pythonce@python.org Message-ID: <[EMAIL PROTECTED]> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Igor, From what you say, I don't see what you could have done wrong. can you send me the full source code so I can give a try ? Alexandre
import ppygui as gui import os import rdebug class MainFrame(gui.CeFrame): # subclass to create our own main frame type keyFlag = 0 filename = '' defaultFolder = '' startSelection = 0 endSelection = 0 def __init__(self): gui.CeFrame.__init__(self, title="Text edit", menu="menu", action=("Clear", self.onClear)) self.MainMenu = gui.Menu() self.FileMenu = gui.PopupMenu() self.TextMenu = gui.PopupMenu() self.EditMenu = gui.PopupMenu() self.navigateMenu = gui.PopupMenu() self.FileMenu.append("New", self.OnNew) self.FileMenu.append("Open...", self.OnOpen) self.FileMenu.append("Save", self.OnSave) self.FileMenu.append("Save As...", self.OnSaveAs) self.SymbolsMenu = gui.PopupMenu() self.SymbolsMenu.append("''", self.OnApostrophi) self.SymbolsMenu.append('[]', self.OnBrackets) self.SymbolsMenu.append('<', self.OnLess) self.SymbolsMenu.append('>', self.OnGreater) self.SymbolsMenu.append('{}', self.OnBraces) self.SymbolsMenu.append('=', self.OnEquals) self.TextMenu.append_menu('Symbols', self.SymbolsMenu) self.TextMenu.append("Cursor pos", self.OnCursorPosition) self.EditMenu.append("Start Selection", self.OnStartSelection) self.EditMenu.append("End Selection", self.OnEndSelection) self.EditMenu.append("Select line", self.OnSelectLine) self.EditMenu.append("Copy", self.OnCopy) self.EditMenu.append("Paste", self.OnPaste) self.EditMenu.append("Delete", self.OnDeleteSelection) self.navigateMenu.append("Start of file", self.OnStartOfFile) self.navigateMenu.append("End of file", self.OnEndOfFile) self.navigateMenu.append("Home", self.OnHome) self.navigateMenu.append("End", self.OnEnd) self.cb_menu.append_menu("File", self.FileMenu) self.cb_menu.append_menu("Edit", self.EditMenu) self.cb_menu.append_menu("Navigate", self.navigateMenu) self.cb_menu.append_menu("Text", self.TextMenu) self.cb_menu.append("Exit", self.onExit) self.text_entry = gui.Edit(self, multiline=True) sizer = gui.VBox(border=(0,0,0,0), spacing=0) sizer.add(self.text_entry) self.sizer = sizer self.text_entry.text = "" self.text_entry.focus() def onClear(self, x): self.text_entry.text = "" self.text_entry.bringtofront() def onExit(self, x): self.close() def OnNew(self, x): self.text_entry.text = "" self.filename = 'untitled' print "Window title: "+self.texte self.text = U'Untitled' def OnOpen(self, x): self.filename = gui.FileDialog.open() self.text = 'Please wait...' fl = open(self.filename, 'r') l = fl.readlines() self.text_entry = None self.text_entry = gui.Edit(self, multiline=True) for i in l: self.text_entry.append(i) sizer = gui.VBox(border=(0,0,0,0), spacing=0) sizer.add(self.text_entry) self.sizer = sizer fl.close() l = [] self.defaultFolder = os.path.split(self.filename)[0] self.text_entry.selection = 0, 0 self.text = self.filename self.text_entry.update() self.text_entry.focus() def OnSave(self, x): if self.filename == '': self.filename = 'unnamed.txt' if self.defaultFolder == '': self.defaultFolder = '.' self.filename = os.path.join(self.defaultFolder, self.filename) fl = open(self.filename, "w") fl.write(self.text_entry.text) fl.close() self.text_entry.focus() def OnSaveAs(self, x): self.filename = gui.FileDialog.save() fl = open(self.filename, 'w') fl.write(self.text_entry.text) fl.close() self.text_entry.focus() def OnApostrophi(self, x): selection = self.text_entry.selection pos = selection[0] self.text_entry.text = self.text_entry.text[:pos] + "''" + self.text_entry.text[pos:] self.text_entry.selection = (selection[0]+2, selection[1]+2) def OnBrackets(self, x): selection = self.text_entry.selection pos = selection[0] self.text_entry.text = self.text_entry.text[:pos] + "[]" + self.text_entry.text[pos:] self.text_entry.selection = (selection[0]+2, selection[1]+2) def OnBraces(self, x): selection = self.text_entry.selection pos = selection[0] self.text_entry.text = self.text_entry.text[:pos] + "{}" + self.text_entry.text[pos:] self.text_entry.selection = (selection[0]+2, selection[1]+2) def OnLess(self, x): selection = self.text_entry.selection pos = selection[0] self.text_entry.text = self.text_entry.text[:pos] + "<" + self.text_entry.text[pos:] self.text_entry.selection = (selection[0]+1, selection[1]+1) def OnGreater(self, x): selection = self.text_entry.selection pos = selection[0] self.text_entry.text = self.text_entry.text[:pos] + ">" + self.text_entry.text[pos:] self.text_entry.selection = (selection[0]+1, selection[1]+1) def OnEquals(self, x): selection = self.text_entry.selection pos = selection[0] self.text_entry.text = self.text_entry.text[:pos] + "=" + self.text_entry.text[pos:] self.text_entry.selection = (selection[0]+1, selection[1]+1) def OnStartSelection(self, x): self.startSelection = self.text_entry.selection[0] self.text_entry.focus() def OnEndSelection(self, x): self.endSelection = self.text_entry.selection[0] self.text_entry.selection = (self.startSelection, self.endSelection) self.text_entry.focus() def OnSelectLine(self, x): start = self.text_entry.line_index(-1) end = self.text_entry.line_index(-1) + self.text_entry.line_length(-1) self.text_entry.selection = (start, end) self.text_entry.focus() def OnCopy(self, x): self.text_entry.copy() self.text_entry.focus() def OnPaste(self, x): self.text_entry.paste() self.text_entry.focus() def OnDeleteSelection(self, x): self.text_entry.cut() self.text_entry.focus() def OnStartOfFile(self, x): self.text_entry.selection = (0, 0) self.text_entry.update() self.text_entry.focus() def OnEndOfFile(self, x): eof = len(self.text_entry.text) self.text_entry.selection = (eof, eof) self.text_entry.focus() def OnHome(self, x): i = self.text_entry.line_index(-1) self.text_entry.selection = (i, i) self.text_entry.focus() def OnEnd(self, x): i = self.text_entry.line_index(-1) + self.text_entry.line_length(-1) self.text_entry.selection = (i, i) self.text_entry.focus() def OnCursorPosition(self, x): line = self.text_entry.line_from_char(-1)+1 col = self.text_entry.selection[0] - self.text_entry.line_index(-1)+1 msg = "Line: "+str(line) + " Col: " + str(col) gui.Message.ok("Cursor position", msg) self.text_entry.focus() if __name__ == '__main__': #rdebug.set_std('igor.txt', 'igor.err') app = gui.Application() app.mainframe = MainFrame() app.run() app.mainframe.text_entry.focus()
_______________________________________________ PythonCE mailing list PythonCE@python.org http://mail.python.org/mailman/listinfo/pythonce