Getsysx und lastkey in Xbase 331 und 3355
Moderator: Moderatoren
- peterdahlmann
- Cut&Paste-Entwickler
- Beiträge: 20
- Registriert: Do, 20. Dez 2007 6:54
- Wohnort: München
Getsysx und lastkey in Xbase 331 und 3355
Hallo Kollegen,
habe vor 6 Jahren mal testweise eine größeres Clipper-Anwendung auf Xbase 331 rübergezogen und ein bisschen mit GUI und Hybridversion rumgespielt. Klappte erstaunlich gut und so es nahe das ganze nochmal mit dem neuesten 335 recompliert. Ich verwendet dabei zwei Batches 331.bat und 335.bat, die sich nur durch die Pfade auf das Xbase-Verzeichnis unterscheiden. Ich kann also wahlweise "alte" und "neue" Programme ereugn.
Dummerweise verhalten sich die erzeugten Programme im Bezug auf Get/Read und lastkey() deutlich.
Ich kann z.B. im alten Programm mit den Funktionstasten F10 das aktuelle Read beenden und dann über Lastkey() entsprechend verzweigen:
z.B.
@ 10,10 get Artikel
Read
lk=lastkey()
do case
Case lk=-9 .or. autopost
.....
Das klappt leider in der mit der 335er-Version nicht mehr. Da bleibt das Programm im Read "hängen" - so als wenn Getsysx nicht verwendet würde.
Hat jemand eine Idee?
Ist schon klar, dass ich das umschreiben müsste, aber leider ist die Anwendung im Betrieb..
Peter
habe vor 6 Jahren mal testweise eine größeres Clipper-Anwendung auf Xbase 331 rübergezogen und ein bisschen mit GUI und Hybridversion rumgespielt. Klappte erstaunlich gut und so es nahe das ganze nochmal mit dem neuesten 335 recompliert. Ich verwendet dabei zwei Batches 331.bat und 335.bat, die sich nur durch die Pfade auf das Xbase-Verzeichnis unterscheiden. Ich kann also wahlweise "alte" und "neue" Programme ereugn.
Dummerweise verhalten sich die erzeugten Programme im Bezug auf Get/Read und lastkey() deutlich.
Ich kann z.B. im alten Programm mit den Funktionstasten F10 das aktuelle Read beenden und dann über Lastkey() entsprechend verzweigen:
z.B.
@ 10,10 get Artikel
Read
lk=lastkey()
do case
Case lk=-9 .or. autopost
.....
Das klappt leider in der mit der 335er-Version nicht mehr. Da bleibt das Programm im Read "hängen" - so als wenn Getsysx nicht verwendet würde.
Hat jemand eine Idee?
Ist schon klar, dass ich das umschreiben müsste, aber leider ist die Anwendung im Betrieb..
Peter
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Getsysx und lastkey in Xbase 331 und 3355
Hallo Peter,
bist Du Dir sicher, dass mit der 331 READ mit Hilfe von F10 (ohne weiteren Programmcode) beendet wurde?
Uli
bist Du Dir sicher, dass mit der 331 READ mit Hilfe von F10 (ohne weiteren Programmcode) beendet wurde?
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
- peterdahlmann
- Cut&Paste-Entwickler
- Beiträge: 20
- Registriert: Do, 20. Dez 2007 6:54
- Wohnort: München
Re: Getsysx und lastkey in Xbase 331 und 335
Klar - ich kanns ja nachvollziehen. Habe irgendwann mal die getsysx ein wenig angepasst und dann ging es. Also nach einer Funktionstaste springt der Cursor immer ins nächste Feld.
Ich compiliere die getsysx immer durch beide Batches und linke ihn dann an den Code
die Batches 331 und 335 unterscheiden sich nur in den folgenden Blöcken mit den Pfaden auf den Compiler:
und die project.xpj sieht für Beide gleich aus:
Mein Verdacht ist, dass in der 335er Version die Getsysx nicht oder anders zum Einsatz kommt als in der 331er Version
Peter
Ich compiliere die getsysx immer durch beide Batches und linke ihn dann an den Code
die Batches 331 und 335 unterscheiden sich nur in den folgenden Blöcken mit den Pfaden auf den Compiler:
Code: Alles auswählen
331
===
SET LIB=e:\alaska19\xppw32\LIB
SET PATH=e:\alaska19\xppw32\BIN;\alaska19\xppw32\LIB;\alaska19\express++\bin
SET INCLUDE=e:\alaska19\xppw32\INCLUDE
SET XPPRESOURCE=e:\alaska19\xppw32\RESOURCE\BITMAP;%XPPRESOURCE%
SET XPPRESOURCE=e:\alaska19\xppw32\RESOURCE\ICON;%XPPRESOURCE%
SET XPPRESOURCE=e:\alaska19\xppw32\RESOURCE\FONT;%XPPRESOURCE%
SET XPPRESOURCE=e:\alaska19\xppw32\RESOURCE\POINTER;%XPPRESOURCE%
335
===
SET LIB=e:\alaska19\alaska\xppw32\LIB
SET PATH=e:\alaska19\alaska\xppw32\BIN;\alaska19\alaska\xppw32\LIB;\alaska19\alaska\express++\bin
SET INCLUDE=e:\alaska19\alaska\xppw32\INCLUDE
SET XPPRESOURCE=e:\alaska19\alaska\xppw32\RESOURCE\BITMAP;%XPPRESOURCE%
SET XPPRESOURCE=e:\alaska19\alaska\xppw32\RESOURCE\ICON;%XPPRESOURCE%
SET XPPRESOURCE=e:\alaska19\alaska\xppw32\RESOURCE\FONT;%XPPRESOURCE%
SET XPPRESOURCE=e:\alaska19\alaska\xppw32\RESOURCE\POINTER;%XPPRESOURCE%
Code: Alles auswählen
[PROJECT]
COMPILE = xpp
COMPILE_FLAGS = /q /b /a /err:5
DEBUG = YES
GUI = YES
LINKER = alink
LINK_FLAGS =
RC_COMPILE = arc
RC_FLAGS = /v
PROJECT.XPJ
[PROJECT.XPJ]
TRU19.EXE
[TRU19.EXE]
tru.res
STD.CH
SET.CH
NATMSG.CH
GET.CH
PROMPT.CH
MEMVAR.CH
COLLAT.CH
INKEY.CH
GETEXIT.CH
APPEVENT.CH
SETCURS.CH
adressen.prg
artikel.prg
redef.prg
vertrete.prg
vertabre.prg
fibmen.prg
kundlist.prg
eindruck.prg
offdruck.prg
openproc.prg
openpos.prg
skl.prg
wv.prg
einzahl.prg
artmen.prg
textmen.prg
artlist.prg
recinfo.prg
beleg.prg
adrmen.prg
anzumsat.prg
adrber1.prg
f_info.prg
f_varin.prg
sysloesc.prg
f_makefi.prg
f_sstr.prg
f_kalend.prg
f_browss.prg
frmdruck.prg
rectest.prg
auftrag.prg
artmen.prg
mahn.prg
adrmen.prg
vertkund.prg
bestell.prg
zusatz.prg
admin.prg
umsatz.prg
texte.prg
textmod.prg
network.prg
s_einzah.prg
appsys.prg
dbesys.prg
errorsys.prg
parsetes.prg
datum.prg
procs.prg
graprint.prg
v_exp.prg
root.obj
verkauf.prg
startpro.prg
netz.prg
appsys.obj
f_fileio.obj
linebib.obj
getsysx.obj
//ace32.lib
//adsdbe.dll
dclipx.dll
Peter
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Getsysx und lastkey in Xbase 331 und 335
sehe ich das richtig das du Express++ verwendest ? verwendest du für die v1.9.355 SL1 auch die Express++ SL1 Versionen ?peterdahlmann hat geschrieben: SET PATH=e:\alaska19\xppw32\BIN;\alaska19\xppw32\LIB;\alaska19\express++\bin
SET PATH=e:\alaska19\alaska\xppw32\BIN;\alaska19\alaska\xppw32\LIB;\alaska19\alaska\express++
\bin
Mein Verdacht ist, dass in der 335er Version die Getsysx nicht oder anders zum Einsatz kommt als in der 331er Version
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Getsysx und lastkey in Xbase 331 und 3355
bei meinen Programmen die noch die alte Optik nutzen habe ich keine Unterschiede im Verhalten von GET / READ festgestellt.
ich nutze umfangreiche SET KEY Konstrukte für Funktionstasten:
Falls Quellcode von einem zum anderen Release nicht mehr "richtig" funktioniert und man keine interne Funktionen verwendet hat (__FunktionsName, die können nämlich Ihr Verhalten ändern), dann sind meist neue SCHLÜSSELWÖRTER schuld, also neue Klassen / Funktionen mit Namen die du für z.B. Felder oder Variablen verwendet hast.
ich nutze umfangreiche SET KEY Konstrukte für Funktionstasten:
Code: Alles auswählen
...
set key K_F2 to f2hilfe
...
set key K_F7 to Notizen
...
set key K_F8 to EuroRech()
...
set key K_F9 to rechnen
...
set key K_F10 to F10_HPMENU
...
READ
...
procedure f2hilfe (proz,zei,_var)
local altcursor,nochmal,altfarb,altselect,af[12],a,altget,altbild,altsetescape
proz=upper(alltrim(proz))
_var=upper(alltrim(_var))
if proz="MEMOEDIT" .or. proz="DBEDIT" // hier nicht erlaubt.
return
endif
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Getsysx und lastkey in Xbase 331 und 3355
wie schon gesagt man muss bei v1.9.355 SL1 auch die Express++ SL1 Versionen verwenden !!!
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Getsysx und lastkey in Xbase 331 und 3355
die "richtige" Toolversion zu verwenden ist natürlich pflicht, aber es geht weiter
Wenn man (Alaska) Systemfunktionen durch angepasste Versionen (also Quellcode vom SYS Verzeichnis) ersetzt,
tut man gut daran bei neuen Xbase++ Versionen die neuen Quellcodedateien auf Änderungen zu untersuchen.
Manches ist nicht wichtig, oft ist es auch gleich geblieben, aber ab und zu muss man etwas ändern
Wenn man (Alaska) Systemfunktionen durch angepasste Versionen (also Quellcode vom SYS Verzeichnis) ersetzt,
tut man gut daran bei neuen Xbase++ Versionen die neuen Quellcodedateien auf Änderungen zu untersuchen.
Manches ist nicht wichtig, oft ist es auch gleich geblieben, aber ab und zu muss man etwas ändern
Gruß
Hubert
Hubert
- peterdahlmann
- Cut&Paste-Entwickler
- Beiträge: 20
- Registriert: Do, 20. Dez 2007 6:54
- Wohnort: München
Re: Getsysx und lastkey in Xbase 331 und 3355
Ja das habe ich mir gedacht dass man doch ab und an den Code ändern muss.
Werde also den Code, der bei Funktionstasten-Drücken aufgerufen wird in eigene Funktionen auslagern, dann sollte es wieder gehen. Ist halt etwas holpriger als vorher - aber das ganze gehört ja sowieso abgelöst. Eine gute Gelegenheit nochmal zu überdenken wie man das in Zukunft gestalten möchte.
Ich habe übrigens mal die Express++-Teile rausgeschmissen und ohne Express- compiliert/gelinkt. Das Verhalten bleibt gleich.
Werde also den Code, der bei Funktionstasten-Drücken aufgerufen wird in eigene Funktionen auslagern, dann sollte es wieder gehen. Ist halt etwas holpriger als vorher - aber das ganze gehört ja sowieso abgelöst. Eine gute Gelegenheit nochmal zu überdenken wie man das in Zukunft gestalten möchte.
Ich habe übrigens mal die Express++-Teile rausgeschmissen und ohne Express- compiliert/gelinkt. Das Verhalten bleibt gleich.