Seite 1 von 1

TxControl Fehler beim Speichern (gelöst)

Verfasst: Do, 09. Mär 2017 12:14
von Peter Schweizer
Hallo Gemeinde
habe mit TxControl 9.1(alte Lizenz) versucht, einen MemoEdit Ersatz zusammenzubauen,
das Aufrufen und Editieren funktioniert, jedoch beim Speichern des geänderten Memotextextes bekomme ich eine Fehlermeldung:
oError:description : Falscher Objekt Status
oError:filename :
oError:genCode : 104
oError:operation : XBPACTIVEXCONTROL:GETNOIVAR
oError:osCode : 0
oError:severity : 2
oError:subCode : 0
oError:subSystem : BASE
oError:thread : 3
oError:tries : 0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von EXCEPTION:RAISE(195)
Aufgerufen von EXCEPTION:RAISEOBJECTSTATE(259)
Aufgerufen von XBPACTIVEXCONTROL:GETNOIVAR(1265)

Code: Alles auswählen

    LOCAL cText := text->txt		// memo
   @ 3,2 DCSTATIC type XBPSTATIC_TYPE_TEXT object oStatic1 SIZE 80,20 	TABSTOP
   DCREAD GUI;
	TO lSpeichern;
	TITLE "Text Dokument bearbeiten";
        PARENT @oDlg;
	OPTIONS GetOptions ;
    	EVAL {||MyCreateTxControl(@oTxMenu,.T.,.T.,oDlg,oStatic1,@oStatic1,@oTxControl,@oTxButtonBar,@oTxStatusBar,cText,.F.)} 

	IF lSpeichern .AND. rec_lock()
		REPLACE text->txt WITH oTxControl:Text   //  hier kommt Fehler !!
	ENDIF

FUNCTION MyCreateTxControl(oTxMenu,lResizeable,lEditAble,oOwner,oWindow, oDlgArea,oTxControl,oTxButtonBar,oTxStatusBar,cMemoText,lIsDatei )
	......... 
    oTxControl:Text := (hardcr(cMemoText))
	...........
RETURN oTxControl
Hat mir jemand einen Tip was da schief laufen könnte ?

Gruß Peter

Re: TxControl Fehler beim Speichern

Verfasst: Do, 09. Mär 2017 13:03
von brandelh
Bedeutet normalerweise, dass du eine Methode aufrufst, bevor ein Create stattgefunden hat.
Bei ActiveX, könnte die Methode aber auch anders aufzurufen sein ...

Ich würde grundsätzlich den Rückgabewert in eine Variable speichern und eventuell die Variablen jeweils auf Type checken.
Ab und zu muss man mit Werten ODER NIL rechnen, replace mag kein NIL.

Re: TxControl Fehler beim Speichern

Verfasst: Do, 09. Mär 2017 13:36
von Peter Schweizer
Hallo Hubert,

das gleiche tritt auf, wenn ich: neutxt := oTxControl:Text
eingebe anstatt des Replace Befehls.
oTxControl muß schon existieren, sonst könnte ich ja in dem erstellten Textfenster nichts eingeben.
Also kann es das nicht sein.

Peter

Re: TxControl Fehler beim Speichern

Verfasst: Do, 09. Mär 2017 14:08
von Wolfgang Ciriack
Mit dem Exit mit DCREAD.. werden alle Objekte gelöscht, d. h. auch dein oTxControl.
Entweder du speicherst vorher das ganze in eine lokale Variable, oder du ergänzt dein DCREAD um ein SAVE.
Bei SAVE musst du dann natürlich den Dialog mit oDlg:destroy() am Ende deiner Funktion beenden.

Re: TxControl Fehler beim Speichern

Verfasst: Do, 09. Mär 2017 14:57
von brandelh
Wenn ich Fenster mit Eingaben aufmache, liefert die Funktion Daten zurück.
Das kann ein String, ein Array oder ein komplexeres gebilde sein.

Controls gehören zu Fenstern, nach dem Fensterende greife ich nie darauf zurück.

Re: TxControl Fehler beim Speichern

Verfasst: Fr, 10. Mär 2017 14:04
von Peter Schweizer
Alles klar, das wars.
Hab jetzt vor verlassen von DCREAD die Daten in einer localen Variablen zwischengespeichert.

Vielen Dank für die Tips.

Gruß Peter