Brille kaputt
Moderator: Moderatoren
- Herbert
- 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
Ja, hab ich verstanden. Ich hab's eben bereits programmiert gehabt.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Brille kaputt
kann mir jemand denn Manifest erklären und wie es angewandt wird. aus der Hilfe verstehe ich das nicht.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2832
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 98 Mal
- Danksagung erhalten: 13 Mal
Re: Brille kaputt
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!)
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:
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:
Und weil wir es hier mit Zauberformeln zu tun haben, muss man das GENAU SO abtippen (oder kopieren) und darf NUR den Programmnamen ändern. 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.
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>
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>
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"
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.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Brille kaputt
Ich mache das übrigens ganz anders.
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.
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
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Brille kaputt
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
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
Hubert
- Herbert
- 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
Uff, also bin ich doch nicht der EinzigeTom hat geschrieben:Ich mache das übrigens ganz anders.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Brille kaputt
wenn jemand noch Fragen hat "was" der DPI-Aware Eintrag macht
http://www.xbaseforum.de/viewtopic.php? ... ARE#p59170
http://www.xbaseforum.de/viewtopic.php? ... ARE#p59268
http://www.xbaseforum.de/viewtopic.php? ... ARE#p82490
http://www.xbaseforum.de/viewtopic.php? ... ARE#p59170
http://www.xbaseforum.de/viewtopic.php? ... ARE#p59268
http://www.xbaseforum.de/viewtopic.php? ... ARE#p82490
gruss by OHR
Jimmy
Jimmy
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Brille kaputt
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
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
Re: Brille kaputt
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
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
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Brille kaputt
wie Marco sagte kamen Theme erst mit der SL1 v1.9.355 dazu.Rolf Ramacher hat geschrieben:Aber welche Themes müssen aktiviert sein, wie mache ich das.? Version ist übrigens bei mir 1.9 - 331
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
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten: