XbpCrt mit "clipper" Befehlen funktioniert nicht

Auf dem Weg von Clipper, FoxPro u.ä. nach Xbase++

Moderator: Moderatoren

Benutzeravatar
Lutz Rübe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 144
Registriert: Mi, 02. Aug 2006 18:13
Wohnort: 24536 Neumünster
Danksagung erhalten: 6 Mal
Kontaktdaten:

XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von Lutz Rübe »

Moin, moin,
nach langer Zeit beschäftige ich mich wieder mal mit xBase und bin dabei auf ein kleines Problem gestossen, dass mich jetzt schon 2 volle Tage beschäftigt. Ich möchte in meine Windows-Applikation ein Crt-Modul einbauen. Mit den bordeigenen Mitteln von xBase bekomme ich ein leeres Fenster erstellt und angezeigt. Wenn ich jedoch "Clipper" Befehle wie @ Say, @get, Setmouse(), Setcolor() einsetzen will, bricht mir die Anwendung ab. Wahrscheinlich ist es nur ein winziger Befehl, ein Include oder was ähnliches was dieses Problem verursacht.
#include "Appevent.ch"
#include "Font.ch"
#include "Gra.ch"
#include "Xbp.ch" /*
* Normales XbpCrt-Fenster (h„ufigste Konfiguration)
*/

PROCEDURE Crt_Fenster()
LOCAL oCrt, oXbp, aPos, aSize := {640,400}
LOCAL oParent := AppDesktop()

aPos := CenterPos( aSize, oParent:currentSize() )
oCrt := XbpCrt():new( oParent, , aPos, 25, 80 )
oCrt:taskList := .T.
oCrt:title := "Normales XbpCrt-Fenster auf dem Desktop"
oCrt:close := {|mp1,mp2,obj| obj:destroy() }
oCrt:create()

@ 8, 30 PROMPT "1 - Einzelwertung "
@ 10, 30 PROMPT "2 - Team-Wertungen"
@ 12, 30 PROMPT "3 - Online-Liga "
@ 16, 30 PROMPT "X - Ende "

oXbp := XbpPushButton():new( oCrt, , {12,12}, {84,24} )
oXbp:caption := "Schließen"
oXbp:create()
oXbp:activate := {|| PostAppEvent(xbeP_Close,,, oCrt) }
RETURN
STATIC FUNCTION CenterPos( aSize, aRefSize )
RETURN { Int( (aRefSize[1] - aSize[1]) / 2 ) ;
, Int( (aRefSize[2] - aSize[2]) / 2 ) }
Wo liegt jetzt mein Problem ?

Vielen Dank im voraus für eine Hilfe.

Gruß
Lutz
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von georg »

Hallo, Lutz -


wie sieht denn Deine project.xpj aus? Ich vermute mal, dass da des Rätsels Lösung liegt.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Lutz Rübe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 144
Registriert: Mi, 02. Aug 2006 18:13
Wohnort: 24536 Neumünster
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von Lutz Rübe »

Hallo Georg,

das habe ich auch schon vermutet, aber da ich nur gelegentlich zum Programmieren komme, kann ich da leider nichts erkennen. Hier die Project-Datei:
[PROJECT]
DEBUG = yes
VERSION = 2.0
OPENFILES =
PROJECT.XPJ

[PROJECT.XPJ]
SKAT2.0.EXE

[SKAT2.0.EXE]
COMPILE = xpp
COMPILE_FLAGS = /ga /q
DEBUG_SAVE = yes
GUI = yes
LINKER = alink
LINK_FLAGS = /force:UNRESOLVED
RC_COMPILE = arc
RC_FLAGS = /v
OBJ_DIR = D:\xppfirst\Projects\MdiBase - Test-Environment\OBJ
// $START-AUTODEPEND
MDIDEMO.RES
MDIDEMO.CH
STD.CH
SET.CH
NATMSG.CH
GET.CH
PROMPT.CH
MEMVAR.CH
COLLAT.CH
GRA.CH
XBP.CH
COMMON.CH
APPEVENT.CH
FONT.CH
XBPDEV.CH
DMLB.CH
APP.CH
XCLASS.CH
DSCLASS.CH
DSBMP.CH
DSMSG.CH
DSCFUNC.CH
DSTYPE.CH
DSAPI.CH
DSCRT.CH
DSINTERNAL.CH
DSSERVER.CH
TYPES.CH
XB2.CH
DSCOMMAND.CH
DSFILEDLG.CH
DSREGISTRY.CH
DLL.CH
NLS.CH
OS.CH
BASIS_FENSTER.obj
CHILD_CRT_1.obj
CHILD_FENSTER.obj
CHILD_RADIOBUTTON.obj
CRT_FENSTER.obj
DATADLG.obj
HBPRINT.obj
MENU_FENSTER.obj
REGISTERXCLASS.obj
SEEKDLG.obj
SK_2002.obj
SK_TOOLS.obj
SKAT20.obj
SKAT20_MENU.obj
XBP_GET.obj
XBPGET.obj
XBPGETC.obj
// $STOP-AUTODEPEND
MDIDEMO.ARC
..\HBPRINTX\HBPRINT.PRG
..\REGISTERXCLASS.PRG
SOURCE\BASIS_FENSTER.PRG
SOURCE\CHILD_CRT_1.PRG
SOURCE\CHILD_FENSTER.PRG
SOURCE\CHILD_RADIOBUTTON.PRG
SOURCE\CRT_FENSTER.PRG
SOURCE\DATADLG.PRG
SOURCE\MENU_FENSTER.PRG
SOURCE\SEEKDLG.PRG
SOURCE\SK_2002.PRG
SOURCE\SK_TOOLS.PRG
SOURCE\SKAT20.PRG
SOURCE\SKAT20_MENU.PRG
SOURCE\XBP_GET.PRG
SOURCE\XBPGET.PRG
SOURCE\XBPGETC.PRG
Mit xClass habe ich das zwar hinbekommen und da funktioniert das auch mit dieser Prpjektdatei, aber bei XbpCrt, also den "Bordmitteln" leider nicht.

Gruß
Lutz
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von ramses »

Hallo Lutz

mit PROMPT zeigts du ein Auswahlmenu an.

Was in deinem Code fehlt ist die Zeile:

menu to <var>

die das Prompt-Menu ausführt und in deine Var speichert.
Valar Morghulis

Gruss Carlo
Benutzeravatar
Frank Grossheinrich
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 142
Registriert: Fr, 31. Mär 2017 15:06
Wohnort: Eschborn
Hat sich bedankt: 5 Mal
Danksagung erhalten: 81 Mal
Kontaktdaten:

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von Frank Grossheinrich »

Hallo,

ich vermute, da fehlt ein

Code: Alles auswählen

SetAppWindow( oCRT )
denn sonst weiß ja die Textausgabe nicht, wohin sie schreiben soll.
Kann es sowas sein?

Ansonsten müsste man den Fehler sehen.

Grüße, Frank Grossheinrich
We love Xbase++, and you?
Benutzeravatar
Lutz Rübe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 144
Registriert: Mi, 02. Aug 2006 18:13
Wohnort: 24536 Neumünster
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von Lutz Rübe »

Hallo Ramses,
danke für den Hinweise, aber das ist nicht das Problem. Das Problem tritt bereits auf, wenn ich Setmouse() oder SetColor() einsetze. Ebenso bei den @Say, @Get und @Prompt Commands.

@Frank, anbei drei verschiedende Fehlermeldungen aus denen ich auch nicht wirklich schlau werde. Mit SetAppWindow(oCrt) habe ich mich noch nicht beschäftigt. Werde ich auf jeden Fall einmal näher untersuchen.

Gruß
Lutz
Dateianhänge
Fehler bei SetMouse(.T.).png
Fehler bei SetMouse(.T.).png (40.47 KiB) 12267 mal betrachtet
Fehler bei SetColor.png
Fehler bei SetColor.png (39.99 KiB) 12267 mal betrachtet
Fehler bei @ Commands.png
Fehler bei @ Commands.png (35.45 KiB) 12267 mal betrachtet
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von ramses »

Hallo Lutz

setze mal vor dem @PROMPT Zeilen diese beiden ein:

Code: Alles auswählen

setappwindow( oCRT )
setAppFocus( oCRT )
Wie Frank auch schrieb.
Valar Morghulis

Gruss Carlo
Benutzeravatar
Lutz Rübe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 144
Registriert: Mi, 02. Aug 2006 18:13
Wohnort: 24536 Neumünster
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von Lutz Rübe »

Hallo Ramses,
leider auch hier negativ. :cry: :cry:
Benutzeravatar
Frank Grossheinrich
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 142
Registriert: Fr, 31. Mär 2017 15:06
Wohnort: Eschborn
Hat sich bedankt: 5 Mal
Danksagung erhalten: 81 Mal
Kontaktdaten:

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von Frank Grossheinrich »

Hallo Lutz,
dann bitte ein VOLLSTÄNDIGES Beispiel (muss ja nix dolles passieren). Ich möchte in den Fehler laufen können.
Ich bin mir fast SICHER, dass es an dem SetAppWindow( ) liegt.
Grüße, Frank
We love Xbase++, and you?
Benutzeravatar
Frank Grossheinrich
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 142
Registriert: Fr, 31. Mär 2017 15:06
Wohnort: Eschborn
Hat sich bedankt: 5 Mal
Danksagung erhalten: 81 Mal
Kontaktdaten:

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von Frank Grossheinrich »

Und deine Fehler sprechen von SetMouse() und SetColor() ... die befinden sich nicht in deinem PRG.
Also, BEVOR all diese Funktionen gerufen werden können, MUSS SetAppWindow() auf das CRT gesetzt werden!

Besser?

Frank
We love Xbase++, and you?
Benutzeravatar
Lutz Rübe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 144
Registriert: Mi, 02. Aug 2006 18:13
Wohnort: 24536 Neumünster
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von Lutz Rübe »

ok, dann hier die Funktion mit SetMouse, SetColor und noch zwei UDF's (Monitor() und RestoreFont()) die ebenfalls Clipper-Befehle enthalten.
#include "Appevent.ch"
#include "Font.ch"
#include "Gra.ch"
#include "Xbp.ch"
#include "XClass.ch"
/*
* Normales XbpCrt-Fenster (h„ufigste Konfiguration)
*/

PROCEDURE Child_Crt_1()
LOCAL oCrt, oXbp, aPos, aSize := {600,300}
LOCAL oParent := AppDesktop()

aPos := CenterPos( aSize, oParent:currentSize() )
oCrt := XbpCrt():new( oParent, , aPos, 25, 80 )
oCrt:taskList := .T.
oCrt:title := "Normales XbpCrt-Fenster auf dem Desktop"
oCrt:close := {|mp1,mp2,obj| obj:destroy() }
oCrt:create()
SetAppWindow(oCrt)
SetAppFocus(oCrt)

RestoreFont()
Monitor()
SetMouse(.t.)
SetColor("W")
DO WHILE .T.
CLEAR
m_42:=Maske("Neues Fenster")
SET MESSAGE TO 22 CENTER
@ 8, 30 PROMPT "1 - Einzelwertung "
@ 10, 30 PROMPT "2 - Team-Wertungen"
@ 12, 30 PROMPT "3 - Online-Liga "
@ 16, 30 PROMPT "X - Ende "
MENU TO vSelect

DO CASE
CASE vSelect = 4
DbCloseArea()
RETURN
ENDCAS
ENDDO

oXbp := XbpPushButton():new( oCrt, , {12,12}, {84,24} )
oXbp:caption := "Schließen"
oXbp:create()
oXbp:activate := {|| PostAppEvent(xbeP_Close,,, oCrt) }

RETURN
STATIC FUNCTION CenterPos( aSize, aRefSize )
RETURN { Int( (aRefSize[1] - aSize[1]) / 2 ) ;
, Int( (aRefSize[2] - aSize[2]) / 2 ) }
Die Funktion Monitor()
FUNCTION monitor()
LOCAL cPfad := AppIni():GetPathEntry("Data", "Dbf")
SET CONFIRM ON
SET DATE TO GERMAN
SET DELETED ON
SET CHARSET TO OEM

DbUseArea(.T.,,cPfad +"em_par",cPfad+"em_par",.T.,.T.)
**IF ! OpenDbLhr("em_par","em_par",.T.,.T.)
** RETURN
**ELSE
**ENDIF
nParArea := Select()
IF ISCOLOR()
standard := (nParArea)->standard
signal := (nParArea)->signal
f_taste := (nParArea)->f_taste
f_wahl := (nParArea)->f_wahl
c_browse := (nParArea)->c_browse
ELSE
standard:="W"
signal:="/W"
f_taste:="W"
f_wahl:="/W"
c_browse:="N/W,W/R,BG/W,W/BG,B/W,B/BG,W/GR,B/R"
ENDIF
SETCOLOR(standard)
(nParArea)->( DbCloseArea() )
RETURN .T.
und RestoreFont()
FUNCTION RestoreFont() // registry or INI-File
LOCAL lOK := .F.
LOCAL cTxt := memoread(GetNameINI())
LOCAL cFontName := alltrim(memoLine(cTxt,200,1,1,.F.))
LOCAL nFontHeight := val(memoLine(cTxt,200,2,1,.F.))
LOCAL nFontWidth := val(memoLine(cTxt,200,3,1,.F.))

IF ! ( empty(cFontName) .OR. empty(nFontHeight) .OR. empty(nFontWidth) )
CRT_SetFont( { cFontName,nFontHeight,nFontWidth } )
CRT_center()
lOK := .T.
ENDIF
RETURN lOK
*-------------
Hilft das weiter ?

Gruß
Lutz
Benutzeravatar
Frank Grossheinrich
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 142
Registriert: Fr, 31. Mär 2017 15:06
Wohnort: Eschborn
Hat sich bedankt: 5 Mal
Danksagung erhalten: 81 Mal
Kontaktdaten:

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von Frank Grossheinrich »

Nein, hilft nicht weiter.
Ich habe den Quelltext in unser Beispiel mdibase eingebaut und dort läuft es. Ich bekomme das CRT und das MENU.
Also, LAUFFÄHIGES Beispiel bitte. Oder andere haben eine Eingebung!
Gruß, Frank
We love Xbase++, and you?
Benutzeravatar
Frank Grossheinrich
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 142
Registriert: Fr, 31. Mär 2017 15:06
Wohnort: Eschborn
Hat sich bedankt: 5 Mal
Danksagung erhalten: 81 Mal
Kontaktdaten:

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von Frank Grossheinrich »

Mach das kaputt.
Dateianhänge
mdibase.zip
(6.48 KiB) 276-mal heruntergeladen
We love Xbase++, and you?
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von ramses »

Hallo Frank
Mach das kaputt.
Geht: Nur zuerst vor dem Anklicken "Lutz CRT" noch einige andere (fremde) Programme anklicken

Code: Alles auswählen

------------------------------------------------------------------------------
FEHLERPROTOKOLL von "E:\MDIBASE.EXE" Datum: 05.06.2020 17:32:33

Xbase++ Version     : Xbase++ (R) Version 2.00.1185
Betriebssystem      : Windows 10 1909 Build 18363
------------------------------------------------------------------------------
oError:args         :
oError:canDefault   : N
oError:canRetry     : N
oError:canSubstitute: J
oError:cargo        : NIL
oError:description  : Zugriff auf Methode nicht erlaubt
oError:filename     : 
oError:genCode      :         25
oError:operation    : scroll
oError:osCode       :          0
oError:severity     :          2
oError:subCode      :       4402
oError:subSystem    : BASE
oError:thread       :          1
oError:tries        :          0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von CHILD_CRT_1(44)
Aufgerufen von (B)DIALOGMENU(340)
Aufgerufen von MAIN(67)

oder

Code: Alles auswählen

------------------------------------------------------------------------------
FEHLERPROTOKOLL von "E:\MDIBASE.EXE" Datum: 05.06.2020 17:44:15

Xbase++ Version     : Xbase++ (R) Version 2.00.1185
Betriebssystem      : Windows 10 1909 Build 18363
------------------------------------------------------------------------------
oError:args         :
          -> VALTYPE: A VALUE: {}
          -> VALTYPE: N VALUE: 0
          -> VALTYPE: C VALUE: VSELECT
oError:canDefault   : N
oError:canRetry     : N
oError:canSubstitute: J
oError:cargo        : NIL
oError:description  : Interne Datenstrukturen besch„digt
oError:filename     : 
oError:genCode      :         41
oError:operation    : _menuTo
oError:osCode       :          0
oError:severity     :          2
oError:subCode      :          5
oError:subSystem    : BASE
oError:thread       :          1
oError:tries        :          0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von CHILD_CRT_1(51)
Aufgerufen von (B)DIALOGMENU(340)
Aufgerufen von MAIN(67)
Valar Morghulis

Gruss Carlo
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von ramses »

Hallo Frank

einer der einfachsten Wege dein Muster kaputt zu machen ist folgender:

1. EXE starten
2. OPEN-->Lutz CRT (CRT Fenster öffnen)
3. Hauptfenster minimieren
4. Enter drücken

---> Fehler

Code: Alles auswählen

------------------------------------------------------------------------------
FEHLERPROTOKOLL von "E:\MDIBASE.EXE" Datum: 05.06.2020 21:20:44

Xbase++ Version     : Xbase++ (R) Version 2.00.1185
Betriebssystem      : Windows 10 2004 Build 19041
------------------------------------------------------------------------------
oError:args         :
oError:canDefault   : N
oError:canRetry     : N
oError:canSubstitute: J
oError:cargo        : NIL
oError:description  : Zugriff auf Methode nicht erlaubt
oError:filename     : 
oError:genCode      :         25
oError:operation    : scroll
oError:osCode       :          0
oError:severity     :          2
oError:subCode      :       4402
oError:subSystem    : BASE
oError:thread       :          1
oError:tries        :          0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von CHILD_CRT_1(44)
Aufgerufen von (B)DIALOGMENU(340)
Aufgerufen von MAIN(67)

Valar Morghulis

Gruss Carlo
Benutzeravatar
Lutz Rübe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 144
Registriert: Mi, 02. Aug 2006 18:13
Wohnort: 24536 Neumünster
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von Lutz Rübe »

Danke an alle. Ich hatte das auch mit der MDIDEMO-Anwendung probiert und bin nicht weitergekommen. Ich weiß (noch) nicht, wo jetzt der Unterschied zwischen MDIBASE und MDIDEMO ist. Kann ja nur an den Einstellungen sein.

Nochmals vielen Dank, ihr habt mir sehr geholfen.

Einen schönen Abend noch

Lutz
Benutzeravatar
Frank Grossheinrich
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 142
Registriert: Fr, 31. Mär 2017 15:06
Wohnort: Eschborn
Hat sich bedankt: 5 Mal
Danksagung erhalten: 81 Mal
Kontaktdaten:

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von Frank Grossheinrich »

Carlo,
ich habe das Sample und Lutz's Code nicht gut gemacht, sondern (fast) 1:1 genommen und in ein CRT geklebt.
Die Verwendung eines CRT in der GUI bedarf weiterer Vorkehrungen. Ich wollte nur über die erste Schwelle helfen, dass man mit SetAppWindow() erst mal definieren MUSS, wohin die Text Ausgaben geschrieben werden.
Gruß, Frank
We love Xbase++, and you?
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

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von AUGE_OHR »

hi,

Code: Alles auswählen

PROCEDURE Child_Crt_1()
LOCAL oParent := AppDesktop()
das ist aber kein MDI [-X

Code: Alles auswählen

PROCEDURE Child_Crt_1(oDlg,oCrt)
LOCAL oXbp, aPos, aSize := {600,300}

   oCrt := XbpCrt():new( oDlg:DrawingArea, , aPos, 25, 80 )
damit hätte man das CRT als MDI.

---

bei CRT Fenster ist es wichtig das die Focus erhalten bevor eine Ausgabe erfolgen kann.
ich nutzte hierbei

MDIBASE.PRG

Code: Alles auswählen

LOCAL oCrt
   oDlg:setDisplayFocus := {|mp1,mp2,obj| IF( EMPTY(oCrt),SetAppWindow( obj ),  SetAppWindow(oCrt) ) }
   ... 
   oMenu:addItem( { "~Lutz CRT", {|| Child_Crt_1(oDlg,oCrt) } } )
nun versucht mal das, mit 1 x CRT, "kaputt" zu bekommen.
LUTZ2.ZIP
(6.6 KiB) 253-mal heruntergeladen
gruss by OHR
Jimmy
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von ramses »

Hallo Jimmy
nun versucht mal das, mit 1 x CRT, "kaputt" zu bekommen.
Kein Problem. Geht ganz schnell.

1. EXE Starten
2. Lutz Crt wählen (CRT Fenster öffnet)
3. Windows Datei Explorer starten
4. CRT Fenster anklicken
5. Enter drüclen

---> Fehler

Code: Alles auswählen


------------------------------------------------------------------------------
FEHLERPROTOKOLL von "E:\MDIBASE.EXE" Datum: 07.06.2020 15:23:54

Xbase++ Version     : Xbase++ (R) Version 2.00.1185
Betriebssystem      : Windows 10 2004 Build 19041
------------------------------------------------------------------------------
oError:args         :
oError:canDefault   : N
oError:canRetry     : N
oError:canSubstitute: J
oError:cargo        : NIL
oError:description  : Zugriff auf Methode nicht erlaubt
oError:filename     : 
oError:genCode      :         25
oError:operation    : scroll
oError:osCode       :          0
oError:severity     :          2
oError:subCode      :       4402
oError:subSystem    : BASE
oError:thread       :          1
oError:tries        :          0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von CHILD_CRT_1(46)
Aufgerufen von (B)DIALOGMENU(341)
Aufgerufen von MAIN(67)
Valar Morghulis

Gruss Carlo
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 996
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von HaPe »

Hallo Jimmy !
nun versucht mal das, mit 1 x CRT, "kaputt" zu bekommen.
Kein Problem. Geht noch schneller.
1. EXE Starten
2. Lutz Crt wählen (CRT Fenster öffnet)
3. CRT-Fenster über das Kreuz oben rechts schließen (auf einen Monitor mit 2560x1440) => Bumms
20200607_190931-Xbase++ Fehlermeldung.jpg
20200607_190931-Xbase++ Fehlermeldung.jpg (43.86 KiB) 12068 mal betrachtet
--
Hans-Peter
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

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von AUGE_OHR »

ok ... MDI

wenn man das in LUTZ.PRG hinzufügt

Code: Alles auswählen

oCrt:setDisplayFocus := {| uNIL1, uNIL2, self | SetAppWindow(self) }
oCrt:setInputFocus := {| uNIL1, uNIL2, self | SetAppFocus(self) }
stürzt er nicht mehr nach eurem Beispiel ab.
LUTZ3.ZIP
(6.64 KiB) 306-mal heruntergeladen
gruss by OHR
Jimmy
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

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von AUGE_OHR »

hi

hier Lutz4 mit neuen Konzept
LUTZ4.ZIP
(5.18 KiB) 210-mal heruntergeladen
GUI_Lutz.jpg
GUI_Lutz.jpg (26.05 KiB) 12072 mal betrachtet
das CRT füllt die DrawingArea komplett aus, also wie ein CMD Fenster.
man kann den Font verändern und die "GUI-Shell" passt sich an.

---

der MaxButton ist disable und es ist wichtig das man KEINE o:DrawingArea "sieht"
sonst bekommt man "_menuTo" oder "scroll" Fehler :^o

---

nur das "Top-Fenster" (XbpDialog) kann bei MDI ein Menu haben.
man kann aber ein "rechte-Maustaste" Contex-Menu verwenden.


jetzt hat man ein GUI Menu und im CRT Fenster kommt noch ein (Prompt) Menu :roll:

---

der Versuch mit MDI war wohl der Gedanke "viele CRT" Fenster zu haben ...
es ist nicht unmöglich aber Hybrid ist nur die 1/2 Lösung.

p.s. bitte mit /w compilieren und Variabel definieren.
dabei darauf achten das "Standard" oder "Signal" auch "Keyword" sein könnten also reserviert sind
gruss by OHR
Jimmy
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 996
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von HaPe »

Hallo Jimmy !

Lutz3 stürzt bei mir mit derselben Fehlermeldung ab.
Lutz4 stürzt bei mir mit derselben Fehlermeldung ab, wenn ich das Main-Fenster größer ziehe und dann das CRT über das Schließenkreuz zumachen möchte.

Build 1037
--
Hans-Peter
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

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von AUGE_OHR »

hi,
HaPe hat geschrieben: Mo, 08. Jun 2020 8:23 Lutz4 stürzt bei mir mit derselben Fehlermeldung ab, wenn ich das Main-Fenster größer ziehe und dann das CRT über das Schließenkreuz zumachen möchte.
sobald du die o:drawingArea "siehst" wird er abstürzen, deshalb hab ich es in Lutz4 "in" der o:drawingArea am laufen und die Titlebar überdeckt

gegen das "X" könnte man auch was machen

Code: Alles auswählen

o:Titlebar := .F.
einfach keine Titlebar also kein "X"

hab ja nur den MaxButton eliminiert was nicht "automatisch" verhindert das User das Main Fenster vergrössern können
mit einem Resize Code-Block kann man die Grössen Änderung auf den Font reduzieren.

wie schon gesagt ist es ein Konzept wie man es machen könnte. wie weit man auf dem Hybrid Weg kommt ist eine andere Sache
gruss by OHR
Jimmy
Benutzeravatar
Frank Grossheinrich
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 142
Registriert: Fr, 31. Mär 2017 15:06
Wohnort: Eschborn
Hat sich bedankt: 5 Mal
Danksagung erhalten: 81 Mal
Kontaktdaten:

Re: XbpCrt mit "clipper" Befehlen funktioniert nicht

Beitrag von Frank Grossheinrich »

Hallo Zusammen,
eigentlich müsste sich Lutz dazu melden, was er wie vorhat.
Ich kann nur empfehlen xbpCRT Fenster modal zu verwenden. Das erspart viel Kopfschmerzen.
Wenn man es wirklich als MDI verwenden möchte, dann muss man wie gesagt sehr viele Vorkehrungen treffen, damit die Text-Ausgabe per @ SAY, etc. zum richtigen Zeitpunkt am richtigen Ort landet. Nun verarbeitet MENU TO ... intern auch noch Events. Das erhöht die Komplexität.
Wie gesagt, ICH wollte Lutz nur über einen kleinen Berg helfen. Ich hatte keinen Anspruch auf MDI-Fähigkeit eines CRT in meinem Beispiel.
Grüße, Frank
We love Xbase++, and you?
Antworten