erst einmal Tag allerseits,
Ich konvertiere zur Zeit meine Clipper-Anwendungen auf xBase++. Dies erfolgt auf einem Notebook mit 1024 x 768 Auflösung. Als Linker-Option verwende ich /PM:PM.
Auf einem PC mit 1600 x 1200 Auflösung sind die Fenster in der ASCII Darstellung so klein, dass ein Arbeiten damit nicht möglich ist. Unter Windws und mit der alten Clipper-Anwendung konnte ich die Fenstergröße variieren und ggf. mit ALT-ENTER in den Fullscreen-Modus umschalten.
Wie bekomme ich das Fenster unter der hohen Auflösung in eine akzeptable Grösse ? Die Linker-Option /PM:PM muß ich für bestimmte Programmteile beibehalten.
Bin gespannt auf eure Lösungsvorschläge.
Lutz
unterschiedliche Bildschirmauflösung
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21165
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 206 Mal
- Danksagung erhalten: 67 Mal
Hi Lutz,
fange mal hier an zu lesen.....
http://www.xbaseforum.de/viewtopic.php?t=42
vielleicht hilft Dir das weiter...
fange mal hier an zu lesen.....
http://www.xbaseforum.de/viewtopic.php?t=42
vielleicht hilft Dir das weiter...
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!!
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!!
-
- Rekursionen-Architekt
- Beiträge: 205
- Registriert: Mo, 07. Aug 2006 10:18
- Wohnort: Leipzig
- Danksagung erhalten: 11 Mal
Hallo Lutz,
ich habe dieses Problem folgendermaßen gelöst: Beim Start der Hybrid-Applikation wird die Schrifthöhe/-breite in Abhängigkeit der aktuellen Auflösung festgelegt und mittels dieser das Crt-Fenster erzeugt. Das hat natürlich den Nachteil, dass, wird während des laufenden Programms vom Nutzer die Auflösung geändert, das Programm nicht mitzieht. Aber das ist bei uns kein Problem, da die Nutzer die Auflösung nicht ändern können.
Hier Code dazu:
FUNCTION xCrtApp( nRows, nCols, cFont )
LOCAL oCrt, oXbp
LOCAL aSizeDesktop, aPos
LOCAL nFontHeight, nFontWidth
Default nRows To 24
Default nCols To 80
Default cFont To "Courier New"
aSizeDesktop := AppDesktop():currentSize()
if aSizeDesktop[1] <= 800 .or. aSizeDesktop[2] <= 600 // Aufloesung <= 800x600
nFontHeight := 22
nFontWidth := 10
elseif aSizeDesktop[1] <= 1024 .or. aSizeDesktop[2] <= 768 // Aufloesung <= 1024x768
nFontHeight := 24
nFontWidth := 12
ELSE // Aufloesung > 1024x768 --> groessere Schrift einstellen
nFontHeight := 27
nFontWidth := 13
endif
// Bestimmen der Fensterposition (Anordnen in der Mitte
// des Desktop)
aPos := { ( aSizeDesktop[1] - ( nCols * nFontWidth ) ) / 2, ;
( aSizeDesktop[2] - ( nRows * nFontHeight ) ) / 2 }
// XbpCRT-Fenster erzeugen
oCrt := XbpCrt():New ( NIL, NIL, aPos, nRows, nCols )
oCrt:FontName := cFont // "Alaska Crt"
oCrt:FontHeight := nFontHeight
oCrt:FontWidth := nFontWidth
oCrt:sysMenu := .T.
oCrt:MinMax := .T.
oCrt:icon := 1
oCrt:Create()
// Presentation Space initialisieren
oCrt:PresSpace()
// XbpCrt wird aktives Fenster und Ausgabegerät
SetAppWindow ( oCrt )
RETURN oCrt
Vielleich hilft es Dir!
Tschüs,
Sören
ich habe dieses Problem folgendermaßen gelöst: Beim Start der Hybrid-Applikation wird die Schrifthöhe/-breite in Abhängigkeit der aktuellen Auflösung festgelegt und mittels dieser das Crt-Fenster erzeugt. Das hat natürlich den Nachteil, dass, wird während des laufenden Programms vom Nutzer die Auflösung geändert, das Programm nicht mitzieht. Aber das ist bei uns kein Problem, da die Nutzer die Auflösung nicht ändern können.
Hier Code dazu:
FUNCTION xCrtApp( nRows, nCols, cFont )
LOCAL oCrt, oXbp
LOCAL aSizeDesktop, aPos
LOCAL nFontHeight, nFontWidth
Default nRows To 24
Default nCols To 80
Default cFont To "Courier New"
aSizeDesktop := AppDesktop():currentSize()
if aSizeDesktop[1] <= 800 .or. aSizeDesktop[2] <= 600 // Aufloesung <= 800x600
nFontHeight := 22
nFontWidth := 10
elseif aSizeDesktop[1] <= 1024 .or. aSizeDesktop[2] <= 768 // Aufloesung <= 1024x768
nFontHeight := 24
nFontWidth := 12
ELSE // Aufloesung > 1024x768 --> groessere Schrift einstellen
nFontHeight := 27
nFontWidth := 13
endif
// Bestimmen der Fensterposition (Anordnen in der Mitte
// des Desktop)
aPos := { ( aSizeDesktop[1] - ( nCols * nFontWidth ) ) / 2, ;
( aSizeDesktop[2] - ( nRows * nFontHeight ) ) / 2 }
// XbpCRT-Fenster erzeugen
oCrt := XbpCrt():New ( NIL, NIL, aPos, nRows, nCols )
oCrt:FontName := cFont // "Alaska Crt"
oCrt:FontHeight := nFontHeight
oCrt:FontWidth := nFontWidth
oCrt:sysMenu := .T.
oCrt:MinMax := .T.
oCrt:icon := 1
oCrt:Create()
// Presentation Space initialisieren
oCrt:PresSpace()
// XbpCrt wird aktives Fenster und Ausgabegerät
SetAppWindow ( oCrt )
RETURN oCrt
Vielleich hilft es Dir!
Tschüs,
Sören