Roland Gentner hat geschrieben:
xbeK_TAB hat den Wert 9 und ist mit Chr( xbeK_TAB ) das TAB-Zeichen.
Das Chr(...) habe ich mir nur gespart.
da habe ich mich falsch ausgedrückt, der Event ist der Keyboardevent und dass dieser define 9 ergibt stimmt natürlich auch,
ich wollte eigentlich sagen, dass man sich hier die Tipperei xbe... sparen kann und gleich den code angibt
Wie auch immer, MEMOEDIT() hat NORMALERWEISE keine Probleme mit TAB Zeichen.
Das folgende Beispiel zeigt, dass beides ohne Probleme (von dem ì abgesehen) zusammen arbeiten können.
Allerdings ist es in dieser Form wahrlich nicht zu empfehlen
Code: Alles auswählen
#include "Gra.ch"
#include "Xbp.ch"
#include "Common.ch"
#include "Appevent.ch"
procedure main()
local oDlg, mp1, mp2, oXbp, cText, oMle, nEvent
mp1 := mp2 := oXbp := nil
oDlg := setAppWindow()
oDlg:SetTitle("Test")
cText := "Dies ist ein Test" + chr(9) + "von TAB Zeichen"+chr(13)+chr(10)+"Ende"
@ 0,1 say " F2 = Memoedit, F3 = MLE, Rest Anzeige der Tastaturcodes" COLOR "W+/B"
cText := MyMemoEdit(cText)
oMLE := XbpMLE():new(oDlg)
* oMLE:wordWrap :=.F.
oMLE:horizScroll := .F.
oMLE:killInputFocus := {| n1, n, oXbp | cText := oXbp:getData() }
oMLE:create( , , {50,50}, {400,150} )
@0,1 say "Text wurde an MLE bergeben ... "
oMLE:setData( cText )
@0,50 say "und geht gleich weiter ..."
nEvent := 0 // Event loop
DO WHILE nEvent <> xbeP_Close
nEvent := AppEvent( @mp1, @mp2, @oXbp, 0 )
do case
case nEvent == xbeK_ESC // Esc bricht ab
EXIT
case nEvent == xbeK_F2 // F2 => Memoedit()
@0,1 say "Memoedit startet und blockiert ... "
cText := MyMemoEdit(cText)
@0,1 say "Memoedit ende, Daten an MLE bergeben .... "
oMLE:setData( cText )
setAppFocus(oMLE)
@0,50 say "und geht gleich weiter ..."
case nEvent == xbeK_F3
@0,1 say "Text wurde an MLE bergeben ... "
oMLE:setData( cText )
setAppFocus(oMLE)
@0,50 say "und geht gleich weiter ..."
case nEvent < xbeB_Event // Ausgabe im Fenster mit Fokus
? "Die Taste hat den Ereigniscode:", nEvent
case oXbp <> NIL // Ereignis für Pushbutton
oXbp:handleEvent( nEvent, mp1, mp2 )
END
ENDDO
return
function MyMemoEdit(cText)
@ 1,1 say "Memoedit Strg+W speichern. chr(9) im Text ? "+iif(chr(9) $ cText,"JA","NEIN") COLOR "W+/B"
set color to "n/w"
@ 2,0 TO 11,41 COLOR "N/BG"
cText := MemoEdit( cText , 3,1,10,40, .T.)
cls
@ 1,1 say "Memoedit Ende in die Eventschleife. chr(9) im Text ? "+iif(chr(9) $ cText,"JA","NEIN") COLOR "W+/B"
return cText
Vermutlich liegt dein Problem in deiner benutzerdefinierten Funktion