BASE/4208 gen Code 104

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

BASE/4208 gen Code 104

Beitrag von Manfred »

Hi,

ich mal wieder.

Kann mir hier einer von den GUI Spezialisten mal weiterhelfen?

oError:args :
-> VALTYPE: O CLASS: XbpDialog
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: Y
oError:cargo : NIL
oError:description : XBP-object has wrong state for access
oError:filename :
oError:genCode : 104
oError:operation : :create
oError:osCode : 0
oError:severity : 2
oError:subCode : 4208
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0

Ich weiß nicht wo ich suchen soll.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Zeig mal den Code, mindesten ab der XbpDialog():NEW() Zeile,
bis zum Create und markiere die Zeile in der der Fehler auftritt (Zeilennummer steht unten in der errorlog).

Auf den ersten Blick würde ich sagen, dass ein
CREATE auf ein Objekt angewandt wird, als das gerade nicht erlaubt ist.
Eventuell wurde create bereits vorher ausgeführt, oder fehlt das NEW()... ?
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Manfred,
ein Create() ohne Init() vielleicht?
Schau doch mal in die Zeile, in der der Fehler aufgetreten ist.
Ansonsten poste mal einige Zeilen Code :-)

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Rennt mich über den Haufen, aber ich bin der Meinung an dem Teil seit längerer Zeit nichts mehr geändert zu haben und bis heute lief es.

Code: Alles auswählen

       IF VALTYPE("oAppWindow") = "C"
          oAppWindow := SetAppWindow()
          oSysPara:neuCenter()
       ENDIF
       oDialog  := XbpDialog():new(oAppWindow,,{200,20},{oSysPara:aWSize[1]-500,160})
       oStatic1 := XBPSTATIC():NEW(oDialog,,{10,110},{300,20})
       oStatic2 := XBPSTATIC():NEW(oDialog,,{10,90},{300,20})
       oStatic3 := XBPSTATIC():NEW(oDialog,,{10,70},{300,20})
       oStatic4 := XBPSTATIC():NEW(oDialog,,{10,50},{300,20})
       oStatic5 := XBPSTATIC():NEW(oDialog,,{10,30},{300,20})
       oStatic6 := XBPSTATIC():NEW(oDialog,,{10,10},{300,20})
       oStatic7 := XBPSTATIC():NEW(oDialog,,{200,10},{100,20})                  
       oDialog:title := "Db-Strukturanpassung: " + UPPER(::cDbank)
       oDialog:create()
Genau bei dem create knallt es.
Ich habe mir das oDialog im Debugger angesehen, kann aber nichts falsches erkennen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hmmm,
ich mache statt des :NEW() bei dem Dialog immer ein :INIT():

Code: Alles auswählen

Dialog  := XbpDialog():[color=red]init[/color](oAppWindow,,{200,20},{oSysPara:aWSize[1]-500,160})
- sonst sehe ich auf die Schnelle erstmal nichts auffälliges...
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Martin,

muß auch was anderes sein, ich habe gerade das PRG File aus einer älteren Datensicherung zurückgeholt, von der ich weiß, dass es lief und der Fehler ist der gleiche.

Ich habe nur keine Ahnung, wo ich jetzt suchen soll weil ich mit dem Fehler als solches nichts anfangen kann.

Watt´n Mist.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

> ich mache statt des :NEW() bei dem Dialog immer ein :INIT():

Laut Handbuch verwendet der Xbaseler :NEW(), was ein INIT() aufruft.
Es sei denn der eXpressler muß das anders machen...

Code: Alles auswählen

IF VALTYPE("oAppWindow") = "C" 
          oAppWindow := SetAppWindow() 
          oSysPara:neuCenter() 
       ENDIF 
       oDialog  := XbpDialog():new(oAppWindow
das ist mir verdächtig: VALTYPE("oAppWindow") = "C"
kann doch nur "C" sein, warum machst du das ?

Wenn oAppWindow kein (passendes) Object ist, würde ein falscher Variablentyp an XbpDialog übergeben, was auch passen könnte ...

Hast du eine eigene AppSys ? Wenn ja setzt du dort SetAppWindow(oDLG) ?
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

brandelh hat geschrieben:

Code: Alles auswählen

IF VALTYPE("oAppWindow") = "C" 
          oAppWindow := SetAppWindow() 
          oSysPara:neuCenter() 
       ENDIF 
       oDialog  := XbpDialog():new(oAppWindow
das ist mir verdächtig: VALTYPE("oAppWindow") = "C"
kann doch nur "C" sein, warum machst du das ?

Wenn oAppWindow kein (passendes) Object ist, würde ein falscher Variablentyp an XbpDialog übergeben, was auch passen könnte ...

Hast du eine eigene AppSys ? Wenn ja setzt du dort SetAppWindow(oDLG) ?
ja, habe ich. Im Moment fällt mir nichts besseres dazu ein.
SetAppWindow(oCrt)
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
rassekst
UDF-Programmierer
UDF-Programmierer
Beiträge: 97
Registriert: Mi, 01. Feb 2006 23:49
Wohnort: Glauchau
Kontaktdaten:

Beitrag von rassekst »

Hallo Manfred,

Probier mal folgendes:

erst das Objekt oDialog mit create() erzeugen, dann die Static's erzeugen.

Gruss Steffen
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

der Code ist doch von eXpress oder ?

Die Fehlermeldung ist eindeutig, etwas (dialog oder controls) ist entweder noch nicht im richtigen Zustand oder schon zuweit (hat also das create schon hinter sich). Ich weiß nun nicht, ob eXpress im Create des Fensters alle anderen automatisch created.

Mei meinem Classcode kam das noch nicht vor.
Irgendetwas muß aber geändert worden sein, zwischen deinem letzten funktionsfähigen Lauf und jetzt. War es eventuell eine ältere Version von Xbase, welche eventuell fehlertoleranter war ?
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

Manfred hat geschrieben:

Code: Alles auswählen

       oDialog:title := "Db-Strukturanpassung: " + UPPER(::cDbank)
       oDialog:create()
Genau bei dem create knallt es.
was ist den mit (::cDbank) ? ich sehe sonst kein :: im source code

gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Moin Jimmy,

das ::cDbank ist es auch nicht, aber ich bin gerade dabei es zu zerpflücken und ich habe den Verdacht, das es ein ganz saublöder Fehler ist und der auch noch VOR dem PC hockt.
Ich melde mich gleich noch einmal.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

auf jeden Fall ist es so, dass der Code, den ich oben eingestellt habe klappt. Der Fehler liegt woanders. Es muß irgendwo bei den Programmversionen etwas durcheinandergekommen sein. Ich bin gerade dabei nach und nach auf GUI umzustellen und dabei muß mir wohl ein Fehler unterlaufen sein. Ich habe einen Versionswechsel meiner Programme vorgenommen und wohl irgendwelche, schon fertige, Methoden aufgerufen, die so nicht benutzt werden können/dürfen.

Wenn ich den Fehler irgendwann einmal finden sollte, dann werde ich ihn hier bekannt geben. Im Moment klappt die letzte Version aber jetzt richtig und das ist die Hauptsache.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Beitrag von Lewi »

Hallo!
Ich bin zwar schon etwas aus der Übung, was Dialog-Funktionscode betrifft, aber mit dem nachfolgenden Code sollte es eigentlich funktionieren. Es stellt sich allerdings die Frage, wie Du im Funktionscode auf die Klassen-Instanzvariable "::cDbank" kommst?

Code: Alles auswählen

Local oDialog, oStatic1, oStatic2, .........

IF VALTYPE("oAppWindow") = "C"
   oAppWindow := SetAppWindow()
   oSysPara:neuCenter()
ENDIF
oDialog  := XbpDialog():new(oAppWindow,,{200,20},{oSysPara:aWSize[1]-500,160})
oDialog:title := "Db-Strukturanpassung: " + UPPER(::cDbank)  <--  wo kommt denn die Instanzvariable her????
oDialog:create()

oStatic1 := XBPSTATIC():NEW(oDialog:drawingArea,,{10,110},{300,20})
oStatic1:create()

oStatic2 := XBPSTATIC():NEW(oDialog:drawingArea,,{10,90},{300,20})
oStatic2:create()

oStatic3 := XBPSTATIC():NEW(oDialog:drawingArea,,{10,70},{300,20})
oStatic3:create()

oStatic4 := XBPSTATIC():NEW(oDialog:drawingArea,,{10,50},{300,20})
oStatic4:create()

oStatic5 := XBPSTATIC():NEW(oDialog:drawingArea,,{10,30},{300,20})
oStatic5:create()

oStatic6 := XBPSTATIC():NEW(oDialog:drawingArea,,{10,10},{300,20})
oStatic6:create()

oStatic7 := XBPSTATIC():NEW(oDialog:drawingArea,,{200,10},{100,20})
oStatic7:create()

oDialog:show()
[/code]
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

ich bin mir jetzt nicht ganz sicher, ob der hier auch zu gehört, aber diesen anfangs genannten Fehler habe ich mehrmals in anderen Programmen produziert. Allerdings weiß ich da, woher und warum der erscheint.

Ich gehe mal in erster Linie davon aus, dass es einfach noch fehlendes Knowhow meinerseits ist, aber der Fehler taucht auf, wenn versucht wird ein GUI Fenster in einem zu kleinen Textfenster zu öffnen, oder wie ich es jetzt nennen soll.

Das Problem hatte ich erneut, als ich über die TOOLS mit WOPEN() usw über das aktuelle Bild ein neues Window gelegt habe und darin dann aus Unwissenheit ein XBP.... drüberlegen wollte. Natürlich habe ich dem Part die Gesamtkoordinaten vom Programmstart gegeben und die sind natürlich anders, als die, zum Zeitpunkt des WOPEN(). Also half dort nur eins: WSELECT() merken, Window wechseln in "0" und dann nochmals GUI aufmachen. Das geht dann.

Tja, es gibt noch viel zu lernen. Lassen wir es liegen....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Beitrag von Markus Walter »

Manfred hat geschrieben:Rennt mich über den Haufen, aber ich bin der Meinung an dem Teil seit längerer Zeit nichts mehr geändert zu haben und bis heute lief es.

Code: Alles auswählen

       IF VALTYPE("oAppWindow") = "C"
          oAppWindow := SetAppWindow()
          oSysPara:neuCenter()
       ENDIF
       oDialog  := XbpDialog():new(oAppWindow,,{200,20},{oSysPara:aWSize[1]-500,160})
       oStatic1 := XBPSTATIC():NEW(oDialog,,{10,110},{300,20})
       oStatic2 := XBPSTATIC():NEW(oDialog,,{10,90},{300,20})
       oStatic3 := XBPSTATIC():NEW(oDialog,,{10,70},{300,20})
       oStatic4 := XBPSTATIC():NEW(oDialog,,{10,50},{300,20})
       oStatic5 := XBPSTATIC():NEW(oDialog,,{10,30},{300,20})
       oStatic6 := XBPSTATIC():NEW(oDialog,,{10,10},{300,20})
       oStatic7 := XBPSTATIC():NEW(oDialog,,{200,10},{100,20})                  
       oDialog:title := "Db-Strukturanpassung: " + UPPER(::cDbank)
       oDialog:create()
Genau bei dem create knallt es.
Ich habe mir das oDialog im Debugger angesehen, kann aber nichts falsches erkennen.

Also wenn ich so auf die Schnelle drüberschaue, meine ich, dass der Parent für die Statics die drawingarea des XbpDialog sein muss und nicht das XbpDialog-Objekt selbst...

In welcher Zeile kommt den der Runtime-Error?
Gruß
Markus

Mitglied der XUG Saarland-Pfalz
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Markus,

der kommt exakt bei :create()

Ich habe deshalb meinen letzten Beitrag hierzu geschrieben, weil es bei einer anderen Anwendung auch zu diesem Fehler kam, dort aber mit WOPEN() der Tools ein neues kleineres Fenster vorher geöffnet wurde. Als ich über WSELECT(0) das ursprüngliche Originalfenster aktiviert hatte, war der Fehler sofort weg.

Es sollte auch nur ein Hinweis darauf sein, dieses evtl. bei der Fehlersuche in Betracht zu ziehen, falls jemand hier aus dem Forum ähnliches erleben sollte. Ich schätze aber mal, wer nicht im Hybridmodus arbeitet dürfte nicht auf diese Problem stoßen!?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten