-
Bildschirm zentrieren (in verschiedenen Auflösungen)
Hallo liebe Community,
ich habe folgendes Problem.
Ich wollte ein Fenster mit einer festen Größe zabhängig von der Bildschirmauflösung entriert einblenden.
Dazu definierte ich im Displayfile ein Positionsfenster dessen Rahmen mit dynamischen Attributen belegt ist:
35 DSPMOD(*DS4)
A OVERLAY
A WINDOW(&POSY &POSX 20 74)
A WDWTITLE((*TEXT &TITEL) *CENTER)
A TITEL 40A P
A POSY 3S 0P
A POSX 3S 0P
Im dazugehörigen RPG-Programm prüfte ich dann mit Hilfes des externen Programmes OPDSPSIZ die aktuelle Bildschirmauflösung (DS3 oder DS4) und passte die Koordinaten des oberen linken Bildschirmfensters entsprechend der Auflösung an:
callp opdspsiz(i_ds4); // i_ds4 = flag für DS4-Bildschirm
if i_ds4;
POSX = 10;
POSY = 3;
else;
POSX = 2;
POSY = 2;
endif;
Allein: beim Starten stürzt das Programm zur Laufzeit ab. (und das liegt leider nicht an der Bildschirmauflösung).
Danke für die Hilfe im voraus.
LG Alex
-
Sehr interesannt ...
und so aufschlußreich!
Gibt es den sowas wie eine Fehlermeldung?
Ein Joblog!
Robi
der Hellsehen und Bauchreden seid Jahren erfolglos übt
-
Da machst du dir etwas viel Mühe, da es so gar nicht funktioniert.
Mittels *DS3 oder *DS4 entscheidest du beim Write, ob dein Bildschirm auf 24x80 oder 27x132 umschalten soll. Gesteuert wird dies mit der entsprechenden Bezugszahl.
Danach wird das Format erst ausgegeben.
Nun entscheidet allerdings das System bereits beim Open einer DSPF, ob das Device überhaupt 27x132 (DS4) unterstützt. Wenn nicht, kann die DSPF gar nicht geöffnet werden und es gib einen Fehler.
Zu empfehlen ist hier sowieso mit 2 DSPF's zu arbeiten, die DS4-DSPF mit UsrOpn (UC) zu definieren und entsprechend des gewünschten Modus, das entsprechende Format auszugeben.
So kann man mittel "Open(E)" den Fehler zumindest abfangen.
Was soll dir das OPDSPSIZ denn liefern?
-
Danke für die prompte kompetente Antwort,
UserOpen werde ich auf jeden Fall einbauen,
zu deiner Frage: OPDSPSIZ setzt einen internen Flag
auf true wenn die Bildsschirmauflösung DS4 ist.
-
Na ja, je nach Anforderung funktioniert das (ein bischen anders) schon, und macht auch Sinn!
Unsere Schirme sind nahezu alle von 80 auf 132 umschatbar (vom User),
Wenn der User eine 80 Schirm eingeschaltet hat, muß ein zusätzliches Pgm, das z.B. ein Window zeigt schon wissen wie die letzte Anzeige war. Das funktioniert auch prima!
Die Trennung, ein DSPF 132 und ein anderes 80 Stellen haben wir wieder verworfen, da der Anwender zur Laufzeit wechseln kann.
Robi
-
Getrennte DSPF's sind in RPG ja ganz einfach, da ja nur das Format und nicht der Dateiname relevant ist.
Sie helfen aber, wenn man mal an ein falsch konfiguriertes Terminal gerät (OpsNav->rechte Maustaste->5250 ist grundsätzlich nicht umschaltbar), der Open fehlschlägt und die Anwendung stirbt.
Similar Threads
-
By AS-Trade in forum NEWSboard Server & Hardware Markt
Antworten: 1
Letzter Beitrag: 23-07-02, 14:13
-
By dieterle in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 27-06-02, 09:35
-
By dirk1978 in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 03-04-02, 16:28
-
By AndreasL in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 21-03-02, 16:17
-
By Brownie in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 25-09-01, 06:58
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks