Brille kaputt

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Brille kaputt

Beitrag von georg »

Hallo,


ja, so geht es, und dann kommen die Programmierer-Fragen.

Nachdem heute morgen der mittlere Bügel meiner Brille gebrochen ist, musste ich auf eine ältere zurückgreifen, die aber eben nicht mehr meiner aktuellen Seh(un)fähigkeit entspricht.

"Na, kein Problem" dachte ich mir und stellte die Windows-Darstellung von 100 auf 125 %. Nach Ab- und wieder Anmelden hatte ich die grössere Darstellung. Bis ich eins meiner Xbase-Programme öffnete und feststellen musste, dass sich dort nichts getan hat. Bisher war ich (rein rheoretisch, wie sich zeigt) davon ausgegangen, dass die Xbase-Parts Schriftgrösse etc. von den Windows-Einstellungen "erben". Das ist aber wohl nicht so.

Was muss ich tun, damit das so ist?
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Brille kaputt

Beitrag von mini990 »

Hallo Georg,
bei ändert sich die Schriftgröße bei den Xbase-Programmen die mit Manifest gelinkt sind,
bei den anderen nicht....

Gruß Stefan
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Brille kaputt

Beitrag von Jan »

Till hatte auf der letzten Jahreshauptversammlung des Vereins einige Worte über das Problem verloren.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Brille kaputt

Beitrag von georg »

Hallo,


ja, das ist es ja ... das Programm ist mit manifest gelinkt, und Themes sind aktiviert. Trotzdem bleibt die Schriftgrösse unverändert.

Und: ich definiere nirgendwo eine Standard-Schriftart, -grösse etc.

@Jan: und wo findet man die Worte, die Till verloren hat? :D
Zuletzt geändert von georg am Mo, 21. Apr 2014 15:54, insgesamt 1-mal geändert.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Brille kaputt

Beitrag von Jan »

Hallo Georg,

.. wenn ich das man noch genau wüßte.

Aber wenn Du ein paar Tage Zeit hast: Till ist ja am 24. Mai bei der Jahreshauptversammlung wieder da. Wir können ihn bitten, hierüber noch mal detailliert zu sprechen.

Ich selber mache es jedenfalls teilweise so, das ich die Auflösung auslese (es gibt hier im Forum verschiedene Threads darüber, wie das gemacht wird), und stelle dann die Schriftgröße abhängig davon ein.

Auf jeden Fall gehörte dazu auch irgendeine Einstellung in der Windows-Anzeige dazu.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Brille kaputt

Beitrag von AUGE_OHR »

georg hat geschrieben:Was muss ich tun, damit das so ist?
DPI-aware ...
1.) DPI Faktor bestimmen
2.) DPI-Aware Eintrag im Manifest
Dateianhänge
DPIAWARE.zip
DPI-Aware Font-Scaling von Till
(46.08 KiB) 337-mal heruntergeladen
gruss by OHR
Jimmy
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Brille kaputt

Beitrag von georg »

Hallo, Jimmy -


danke, ich schaue mir das morgen mal an.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Brille kaputt

Beitrag von georg »

Hallo,


tja - "morgen" ist in der Programmierung immer relativ.

Inzwischen habe ich es versucht, und die DPI-Erkennung funktioniert. Jetzt kann ich darauf reagieren, habe aber ein anderes Problem: die Schriftgrösse ist weiterhin "unverändert".

Jetzt habe ich mir mal die Dokumentation von XbpSLE() angeschaut und bin auf

:setFontCompoundName()
bzw.
:setFont()

gestossen. Aber, denkste: beide Funktionen liefern bei "plain vanilla" Xbase-Parts NIL zurück, wiewohl die Dokumentation aussagt, dass beim Aufruf ohne Parameter (also neuer Fontname oder XbpFont() Objekt) die bisherige Einstellung zurückgegeben wird. Aber dass die bisherige Einstellung NIL sein soll, kann ich nicht akzeptieren.

Ich kann natürlich für 100 % Skalierung einen Wert festlegen, hätte aber lieber die Anpassung aus den Systemeinstellungen abgeleitet.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Brille kaputt

Beitrag von Jan »

Georg,

schau doch mal in die Präsentation von Till, die ich im Mitgliederbereich gepostet habe. Er hat da einen Weg beschrieben, wie man die Schriftgröße sehr elegant an die realen Gegebenheiten anpassen kann.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Brille kaputt

Beitrag von georg »

Hallo, Jan -


danke für den Hinweis, werde ich morgen mal versuchen.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Brille kaputt

Beitrag von Rolf Ramacher »

da passt der berühmte Satz, "mit Brille wäre das nicht passiert"
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Brille kaputt

Beitrag von Herbert »

Man kann alle Elemente manuell verändern, wenn man will und die erwähnten Wege nicht helfen.

Mit Childlist die Elemente herausfinden
Grösse und Position verändern mit SetPosandSize (Grössere Schrift braucht mehr Platz)
und mit IsderivedFrom Unterelemente herausfinden und dasselbe tun.

weiter kann mit SetFontCompundName auch der Font z.B. der Eingabefelder angepasst werden.

Etwas mühsam aber bei mir funktioniert das.

So geht's auch ohne Brille...
Grüsse Herbert
Immer in Bewegung...
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Brille kaputt

Beitrag von georg »

Hallo, Herbert -


nur ist es so, dass bei mir der Aufruf von :setFontCompoundName() leider nur NIL zurückliefert, d.h. ich kann den vorhandenen Font nicht anpassen ...

Da ich aber inzwischen alle Xbase-Parts, mit denen ich arbeite, abgeleitet habe, definiere ich den Namen des Fonts selbst beim :create() des jeweiligen Xbase-Parts mit der entsprechenden Skalierung.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Brille kaputt

Beitrag von Jan »

Hallo Georg,

wenn Du die Manifest umsetzt dann passt Windows die Fontgröße alleine an. Du mußt Dich dann nur noch um die GUI-Elemente kümmern, das die passen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Brille kaputt

Beitrag von georg »

Hallo, Jan -


unter Windows 8.1 mit der 355 und allen Aktualisierungen und den DPI-Aware-Einträgen in der Manifest-Datei werden bei mir die Fonts nicht skaliert, d.h. bei einer Veränderung der Anzeige von 100 % auf 125 % sind die Buchstaben und Zahlen unverändert in der Grösse, d.h. entsprechen immer noch den 100 %.

Wobei es sich in diesem Fall um einen neuen Rechner handelt, auf den ich Programm sowie Xbase++ Laufzeitumgebung draufgepackt habe, um gerade dieses Verhalten einmal ausprobieren zu können.

Es mag natürlich auch an meiner manifest-Datei liegt:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    version="1.0.0.0"
    processorArchitecture="X86"
    name="scaling.test"
    type="win32"
/>
<description>Description Builder for upload posts.</description>
  <dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="X86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
  </dependency>
  <asmv3:application  xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>true</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>
Die DPI-Abfragen aus Jimmy's Archiv lassen sich mit den Einstellungen durchführen, daher denke ich, dass die manifest-Datei i.O. ist.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Brille kaputt

Beitrag von Jan »

Hallo Georg,

unter Windows 7 64Bit (Ultimate und Home) funktioniert das mit dem Skalieren der Fonts.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Brille kaputt

Beitrag von Herbert »

Jan, Windows 8 ist anders. Xbase muss anpassen :)

Georg, ich gab nur die Idee an, die Durchführung ist etwas komplizierter.
Grüsse Herbert
Immer in Bewegung...
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Brille kaputt

Beitrag von georg »

Hallo, Herbert -


aus meiner Sicht ist der Weg deutlich einfacher. Zumindest bis Windows 8.1 bedingt eine Änderung in der Skalierung immer ein Ab- und Anmelden, d.h. während einer Windows-Sitzung ändert sich die Skalierung NICHT. Und auf diese Einstellung greifen auch die Beispiele von Alaska zurück.

Daher genügt es m.E. derzeit, beim Programmstart den Skalierungsfaktor zu ermitteln und dann beim Erstellen von Xbase-Parts die Schriftart mit der gewünschten Grösse zuzuweisen. Sollte sich das Verhalten von Windows in absehbarer Zeit ändern, müsste ich auch hier die Logik anpassen. Aber das sollte m.E. kein Problem sein, da ich alle Xbase-Parts abgeleitet habe und dann nur in meinen Ableitungen entsprechende Abfragen einbauen muss.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Brille kaputt

Beitrag von brandelh »

sooo, mein "Senf" zu den hohen Auflösungen sollte eigentlich hier rein, also nochmal ;-)

zu dem Thema ... vor kurzem war ein Test von 4K Monitoren (chip oder c't) ...
Fazit: "wer einmal ein Foto auf einem 4K Monitor angesehen hat, will keinen anderen mehr"

Ich war schon fast geneigt über neue Hardware nachzudenken, dann kamen die "Tricks" die nötig sind um
das Teil zum Laufen zu bringen ... ohne Displayport hat man nur 30 Bilder/Sek ...
viele Grafikkarten / Treiber machen noch Probleme ...
Fast keine Software kommt mit der riesen Auflösung zurecht, Win 7 kann nur 150 % und für die Auflösung braucht man mehr ...

Ich habe es erst mal gelassen und warte ab bis die Probleme gelöst sind :badgrin:
Gruß
Hubert
DelUser01

Re: Brille kaputt

Beitrag von DelUser01 »

Hallo Georg,

hatte für einen langjährigen Kunden hatte ich vor zig Jahren ein ähnliches Problem zu lösen.
Habe dann alle meine Module (CRT+GUI) mit der Möglichkeit versehen die Größe der Schriftart auszuwählen. Der "Normalbenutzer" hat für die leichtere Umschaltung 3 Standard-Größen zur Auswahl (klein/mittel/groß).
Da bei mir noch viel Hybridmodus im Spiel ist sind die Schriften so aufeinander abgestimmt dass die GUI-Funktionen und GUI-Fenster zu den CRT-Fenstern passen.

Nur das Menü ist noch das Standard-Menü mit den System-Fonts.
Das ist natürlich Übel wenn der User auf einem 30"-Monitor 1cm große Buchstaben verwendet und das Menü "nur" 3mm hoch ist.
Aber da will ich noch nicht drangehen...

Aber ohne diese integrierte Skalierung bzw. richtiger Weise die unterschiedliche Schriftgrößen sehe ich nur die generelle Möglichkeit die Bildschirmauflösung zu verschlechtern um große Schriften in allen Programmen zu bekommen :D

Gruß
Roland
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Brille kaputt

Beitrag von Jan »

Ich hab inzwischen meine eigene Software so umgeschrieben, das die auf egal welche Einstellung von Windows korrekt reagiert. War 'ne blöde Arbeit, aber es sieht wirklich gut aus.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
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

Re: Brille kaputt

Beitrag von Manfred »

Jan,

kannst Du mal ein kleines Beispiel dazu hier einstellen?
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!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Brille kaputt

Beitrag von Jan »

Manfred,

für Dich doch imemr gerne :D . Habe ich in die Wissensbasis eingestellt.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Brille kaputt

Beitrag von Herbert »

Verstehe, Jan.
OK, da ich nicht wusste, wie man das Manifest (miss)braucht, ist läuft mein ebenso funktionierender Weg ohne die Manifest-Geschichte.
Der Benutzer kann die Skalierung selber angeben und unabhängig davon die Fontgrösse.
Viele Wege führen nach Rom
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Brille kaputt

Beitrag von Jan »

Hallo Herbert,

ich bin nicht sicher ob ich Dich richtig verstehe.

Der Punkt mit der Manifest ist, daß der Benutzer nichts für das Programm einstellen oder auswählen muß. Sondern daß das Programm sich automatisch an die Einstellungen in der Systemsteuerung anpasst.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Antworten