Um eine eigene Behandlung der Eingabe in SLE-Felder zu implementieren, bräuchte ich die Position des Eingabe-Cursors im Feld.
Wie komme ich an die ran?
Cursorposition in SLE
Moderator: Moderatoren
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Cursorposition in SLE
Hi,
schau mal was ich hier gemacht habe, vielleicht ist ja was passendes dabei ...
http://www.xbaseforum.de/viewtopic.php?f=16&t=4038
Cursorposition
abfragen: :queryMarked() --> aStartEnd
festlegen: :setMarked(aStartEnd)
dann gibt es noch cut, paste und copy Marked().
GANZ WICHTIG: statt :getData() :editBuffer() verwenden, sonst wird gespeichert !
schau mal was ich hier gemacht habe, vielleicht ist ja was passendes dabei ...
http://www.xbaseforum.de/viewtopic.php?f=16&t=4038
Cursorposition
abfragen: :queryMarked() --> aStartEnd
festlegen: :setMarked(aStartEnd)
dann gibt es noch cut, paste und copy Marked().
GANZ WICHTIG: statt :getData() :editBuffer() verwenden, sonst wird gespeichert !
Gruß
Hubert
Hubert
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Cursorposition in SLE
Hubert, getData() speichert nur, wenn du im Datalink auf ein Datenbankfeld verweist.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Cursorposition in SLE
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Vielleicht klappts so:
Vielleicht klappts so:
Code: Alles auswählen
#define WM_USER 1024 /* 0x0400 */
#define EM_GETSEL (WM_USER+0)
#define EM_SETSEL (WM_USER+1)
STATIC DLLFUNCTION SendMessageA( nHWND, nMsg, nMp1, nMp2 ) ;
USING STDCALL ;
FROM USER32.DLL
...
SendMessageA(::SLE:getHWND(),EM_SETSEL,3,3) // Setzen des Cursors
nPos := SendMessageA(::SLE:getHWND(),EM_GETSEL,0,0) // Abfragen des Cursors
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Cursorposition in SLE
möchest du beim nachträglichen Einfügen eines datalink jedesmal die eigene SLE-Klasse überarbeiten ?Herbert hat geschrieben:Hubert, getData() speichert nur, wenn du im Datalink auf ein Datenbankfeld verweist.
natürlich hast du Recht mit deiner Aussage, aber wenn man eigene SLE Klassen ableiten will, dann
nimmt man dafür die richtige vorgesehene Methode :editBuffer().
Auch die SendMessageA API Funktion braucht man nicht zu bemühen, das XbpSLE kann das mit den eigenen Methoden auch
Gruß
Hubert
Hubert
Re: Cursorposition in SLE
Vielen Dank,
der Hinweis auf queryMarked() und das Beispiel waren sehr hilfreich.
der Hinweis auf queryMarked() und das Beispiel waren sehr hilfreich.