Brille kaputt

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

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 »

Ja, hab ich verstanden. Ich hab's eben bereits programmiert gehabt.
Grüsse Herbert
Immer in Bewegung...
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 »

kann mir jemand denn Manifest erklären und wie es angewandt wird. aus der Hilfe verstehe ich das nicht.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
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, Rolf -


eigentlich hatte ich gehofft, dass andere hier vorpreschen, aber wenn keiner will, dann mache ich mal ... Daher kann die Beschreibung auch fehlerhaft oder irreführend sein ...

Zuerst begegnet bin ich dem Thema Manifest-Datei bei Tom's Vortrag über Owner-Drawing. Wenn man die mit Windows XP eingeführten Themes und die damit verbundenen grafischen Spielereien als auch (oder auch) Owner Drawing verwenden will, benötigt man eine Manifest-Datei. Diese Datei muss den gleichen Namen wie das Programm haben, also

meinprogramm.exe
meinprogramm.exe.manifest

Die Manifest-Datei ist eine Text-Datei, in der einiges wirre Zeug drinsteht, das man am besten kopiert, weil's kaum einen interessiert (wenn einer weiss, wofür das gut ist, gerne ergänzen!)

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="meinProgramm"
    type="win32"
/>
<description>meinProgramm kann alles.</description>
  <dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="X86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
  </dependency>
Voraussetzung für die Nutzung von Themes ist, dass diese auch aktiviert sind. Wenn das so ist, erstell einfach mal eine Manifest-Datei für eines Deiner Programme und rufe das Programm einmal mit und einmal ohne Manifest-Datei im Programm-Verzeichnis auf. Du solltest einige Unterschiede in der Optik der XBase-Parts bzw. des Fensters sehen.

Zurückgehend auf das Problem, weshalb ich dieses Thema aufgemacht habe, kann man z.B. folgende Zauberformel noch hinzufügen:

Code: Alles auswählen

  <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>
Dann greifen die Beispiele in diesem Thema bezüglich der Erkennung des Zooms-Faktors von Windows.

Alternativ zu der zusätzlich ausgelieferten Manifest-Datei gibt es die Möglichkeit, diese über eine .ARC-Datei direkt in Dein Xbase++-Programm einzubinden. Das sieht dann in der .ARC-Datei so aus:

Code: Alles auswählen

#define MANIFEST_RESID 1
#define MANIFEST 24

USERDEF MANIFEST
      MANIFEST_RESID = FILE "meinprogramm.exe.manifest"
Und weil wir es hier mit Zauberformeln zu tun haben, muss man das GENAU SO abtippen (oder kopieren) und darf NUR den Programmnamen ändern. :D Die definierten Werte 1 bzw. 24 werden nämlich von Windows ZWINGEND erwartet, und wer hier gerne andere Zahlen einträgt, wundert sich, warum es nicht klappt.

Auf diesem Weg wird die Manifest-Datei direkt in Dein Programm eingebunden und ist quasi fester Bestandteil Deines Programms.

Ich hoffe, ich konnte Deine Fragen ein wenig beantworten.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Brille kaputt

Beitrag von Tom »

Ich mache das übrigens ganz anders. :wink:

Die App ist standardmäßig - von einigen wenigen Dialogen abgesehen - auf 1280 x 960 layoutet, das ist die Mindestauflösung (allerdings gibt es auch für deutlich kleinere Auflösungen Möglichkeiten). Findet sie eine höhere Auflösung, wird für sämtliche Parts und Fonts ein Skalierungsfaktor errechnet (auch für Browsezeilen usw.), die App zoomt also automatisch hoch. Alle Funktionalitäten, die Fonts, Größen und Positionen bestimmen, berücksichtigen das. Dabei wird die im Verhältnis kleinere Abmessung zugrundegelegt, um gestreckten Bildschirmen vernünftig begegnen zu können. Ist zusätzlich oder alternativ noch ein von 100 Prozent abweichender DPI-Faktor gesetzt (API-Abfrage), werden einfach alle Schriftgrößen zurückgerechnet. Habe ich also, als einfaches Beispiel, 150 Prozent, nutze ich statt 15.Arial einfach 10.Arial. Dadurch, dass sich die App bei einem größeren Bildschirm hochzoomt, sieht sie dadurch im Normalfall schön aus <hüstel>. Und auch Auflösungen unter 1280 x 960 werde ich dadurch gerecht, weil der Skalierungsfaktor auch kleiner 1 sein kann. Dadurch kann man die Anwendung - theoretisch - auch auf Netbooks verwenden. Allerdings nicht, wenn man eine Sehschwäche hat - eine 4-Punkt-Schrift kann nicht jeder lesen.
Herzlich,
Tom
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 »

Auf jeden Fall stellt deine Lösung sicher, dass die Schrift immer mit scharfen Kanten dargestellt wird (Bitmaps sind immer problematisch).
Nach dem Vortrag auf der Mitgliederversammlung habe ich mir mal ein PowerBasic GUI Programm genauer angesehen (die verwenden DIALOG UNITS,
welche scheinbar vom OS an höhere Auflösungen angepaßt werden. Dabei wird die Schrift aber schnell "matschig", sieht nicht so toll aus !

Ich selbst habe mich nie um Auflösungen gekümmert, weil meine "Kunden" (Anwender im Hause) alle die gleiche Hardware hatten und
meine Dialoge das auch nicht gebraucht haben. Mit 2.0 und dem Dialog Manager werde ich mich wohl nochmals damit befassen ;-)
Gruß
Hubert
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 »

Tom hat geschrieben:Ich mache das übrigens ganz anders. :wink:
Uff, also bin ich doch nicht der Einzige
Grüsse Herbert
Immer in Bewegung...
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 »

gruss by OHR
Jimmy
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 »

Hallo Georg

danke erstmal für deine Eklärung. Aber welche Themes müssen aktiviert sein, wie mache ich das.? Version ist übrigens bei mir 1.9 - 331
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Scarmo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 188
Registriert: Di, 24. Jul 2007 9:17

Re: Brille kaputt

Beitrag von Scarmo »

Hallo Rolf

Ich glaube, mit Deiner Version 1.90.331 gab es noch einige Probleme bei den Themes... Deshalb (und aus zahlreichen anderen Gründen) solltest Du also besser auf 1.90.355 updaten!

Gruss
Marco
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 »

Rolf Ramacher hat geschrieben:Aber welche Themes müssen aktiviert sein, wie mache ich das.? Version ist übrigens bei mir 1.9 - 331
wie Marco sagte kamen Theme erst mit der SL1 v1.9.355 dazu.
mittels Patch (Anfrage per PN) kann man eine original v1.9.331 in eine v1.9.355 updaten.

... und dann benötigst du evtl. noch einige SL1 Hotfixe für optische Korrekturen.
gruss by OHR
Jimmy
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 »

M$ hat zu dem Thema das geschrieben:

http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Gruß
Hubert
Antworten