View Full Version : Problem mit Windowsubfile
Hallo
Habe mir eine externe Prozedur geschrieben mit der ich den Inhalt einer
Bewegungscodedatei anzeige. Da ich diese Codes in vielen Programmen
anzeigen muss habe ich eben ein Procedur geschrieben.
Das Problem das ich nun habe ist das beim ersten anzeigen des Windows
ganz normal angezeigt wird, aber ab dem zweiten anzeigen der Windowrahmen
und Titel nicht mehr angezeigt wird.
Dummysatz mit Keep und Assume ist auch vorhanden.
mfg Stefan
Hallo
Habe mir eine externe Prozedur geschrieben mit der ich den Inhalt einer
Bewegungscodedatei anzeige. Da ich diese Codes in vielen Programmen
anzeigen muss habe ich eben ein Procedur geschrieben.
Das Problem das ich nun habe ist das beim ersten anzeigen des Windows
ganz normal angezeigt wird, aber ab dem zweiten anzeigen der Windowrahmen
und Titel nicht mehr angezeigt wird.
Dummysatz mit Keep und Assume ist auch vorhanden.
mfg StefanHallo Stefan,
hast Du aus der externen Prozedur ein Serviceprogramm gemacht oder das Modul beim Kompilieren mit eingebunden?
Ich habe ein Serviceprogramm, bei dem es problemlos klappt.
Du solltest bei externen Prozeduren auch darauf achten, dass Du die verwendeten Dateien mit 'usropn' definierst und immer explizit öffnest und schliesst.
Mit freundlichen Grüßen
Alexander
Hallo Stefan,
hast Du aus der externen Prozedur ein Serviceprogramm gemacht oder das Modul beim Kompilieren mit eingebunden?
Ich habe ein Serviceprogramm, bei dem es problemlos klappt.
Du solltest bei externen Prozeduren auch darauf achten, dass Du die verwendeten Dateien mit 'usropn' definierst und immer explizit öffnest und schliesst.
Mit freundlichen Grüßen
Alexander
Danke für den Tipp mit dem usropn. Habe ich jetzt auch beim Displayfile gemacht und jetzt geht es tadellos.
mfg stefan
Der USROPN ist nicht der entscheidende Grund.
Bei jedem DisplayOpen wird der aktuelle Bildinhalt gesichert, so dass beim Close und Verlassen der Programmebene der Bildschirm rekonstruiert wird.
Dieses kann man beim CRTDSPF mittels RSTDSP(*NO) ausschalten sowie bei Fenstern mit USRRSTDSP beeinflussen.
Dadurch kann man Fenster überlagern ohne jedesmal die Datei zu öffnen und zu schließen (was zugegeben nur einen minimalen Overhead bedeutet).
Allerdings führt häufiges Open/Close von DSPF's auch zu verstärktem Datenverkehr von und zum Terminal.
Durch RSTDSP(*YES), was die Standardeinstellung ist, wird das System gezwungen vor der Anzeige den aktuellen Bildinhalt vom Terminal abzurufen und, wenn das Programm dann fertig ist, also Close oder *INLR=*ON, den ursprünglichen Inhalt wiederherzustellen.
Diese Wiederherstellung ist häufig gar nicht sichtbar, da ja vom übergeordneten Programm meistens das Bild neu aufgebaut wird.
Mit RSTDSP(*NO) kann man sich insgesamt ein bisschen Netzverkehr sparen und Performance steigern.