unterschiedliche Bildschirmauflösung

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
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:

unterschiedliche Bildschirmauflösung

Beitrag von Lutz Rübe »

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
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Lutz,

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!!
Sören
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 205
Registriert: Mo, 07. Aug 2006 10:18
Wohnort: Leipzig
Danksagung erhalten: 11 Mal

Beitrag von Sören »

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
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:

Beitrag von Lutz Rübe »

Ich möchte mich für die Antworten und Hinweise bedanken. Die Lösung von Andreas (PROCEDURE APPSYS) kommt jetzt bei mir zum Einsatz
Antworten