Hi,
einige bisher unter XP und Xbase++1.9 kompilierten Programme, habe ich nach und nach unter WIN7 64bit und Xbase++ 1.9 SL1 neu kompiliert. I.d.R. nutze ich für alle Programme eine manifest.
Das Ergebnis sieht immer sehr bescheiden aus, so dass ich immer wieder etlichen Aufwand treiben muss und den „Look“ des neu kompilierten Programms so anzupassen, dass es „erträglich“ ausschaut. Vor allem das Ändern der Farben dauert mir zu lange. Waren Dialoge unter XP z-B. noch leicht grau, sind sie jetzt weiß. Halb so wild, wenn auch die Farbe der anderen Objekte automatisch umgestellt werden würde. Aber nein, alle Pushbuttons bleiben grau. … einfach grauenvoll!
Bei einigen kleineren Anwendungen habe ich es bereits händisch angepasst. Jetzt sind ein paar größere Programme dran und das kann es doch nicht sein?
Gibt es dafür ein Allheilmittel? Tipps? Ideen? Sonstige Anregungen?
Darstellungsproblem nach Kompilierung unter Xbase++ 1.9 SL1
Moderator: Moderatoren
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Darstellungsproblem nach Kompilierung unter Xbase++ 1.9
Hallo, Magic.
1. Eigene XbpDialog-Klasse ableiten und Methode "Init" überschreiben. Dort die Dialoge einfärben, etwa nach wählbaren Voreinstellungen. Mit Suchen&Ersetzen alle Dialogerzeugungen instandsetzen (aus "FROM XbpDialog" wird "FROM XbpMyDialog" oder ähnlich). Pferdefuß: Tabpages sind immer weiß, wenn mit Manifest gearbeitet wird.
2. Skinning, zum Beispiel mit dem SkinFrameWork von Codejock (www.codejock.com). Das ist nicht ganz trivial, aber machbar (kostet allerdings was). Damit kannst Du verschiedene Stile für Deine App ausliefern und zur Laufzeit wechseln. Hat auch einen kleinen Pferdefuß: Radiobuttons und nicht aktivierte Checkboxen auf Tabs machen u.U. Probleme. Dafür gibt es aber Lösungen hier im Forum (und meines Wissens inzwischen auch einen Hotfix von Alaska).
3. Ownerdrawing. Damit werden Pushbuttons usw. allerdings nicht immer wirklich hübscher. Mal im Forum suchen.
1. Eigene XbpDialog-Klasse ableiten und Methode "Init" überschreiben. Dort die Dialoge einfärben, etwa nach wählbaren Voreinstellungen. Mit Suchen&Ersetzen alle Dialogerzeugungen instandsetzen (aus "FROM XbpDialog" wird "FROM XbpMyDialog" oder ähnlich). Pferdefuß: Tabpages sind immer weiß, wenn mit Manifest gearbeitet wird.
2. Skinning, zum Beispiel mit dem SkinFrameWork von Codejock (www.codejock.com). Das ist nicht ganz trivial, aber machbar (kostet allerdings was). Damit kannst Du verschiedene Stile für Deine App ausliefern und zur Laufzeit wechseln. Hat auch einen kleinen Pferdefuß: Radiobuttons und nicht aktivierte Checkboxen auf Tabs machen u.U. Probleme. Dafür gibt es aber Lösungen hier im Forum (und meines Wissens inzwischen auch einen Hotfix von Alaska).
3. Ownerdrawing. Damit werden Pushbuttons usw. allerdings nicht immer wirklich hübscher. Mal im Forum suchen.
Herzlich,
Tom
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Darstellungsproblem nach Kompilierung unter Xbase++ 1.9
und schon mal unter Win 8x versuchtMagic hat geschrieben:unter XP und Xbase++1.9 ... unter WIN7 64bit und Xbase++ 1.9 SL1
dort sehen die Theme ( = visual Style ) ja wieder anders aus als unter XP, Vista oder Win 7
hm ... wieso grau mit XP Manifest ?Magic hat geschrieben:Aber nein, alle Pushbuttons bleiben grau.
Frage : hast du bei JEDEM XbPart die Presentation Parameter Konstanten verwendet wie es der Formdesigner macht ?
beim XbpPushButton() wäre es XBPSYSCLR_BUTTONMIDDLE und damit bekommt es auch den richtigen visual Style wenn ich z.b. iTunes als Theme verwende.
Frage : welche v1.9.355 SL1 Version verwendest du ? die ge-PATCH-te Version oder die "Full" ?Magic hat geschrieben:Gibt es dafür ein Allheilmittel? Tipps? Ideen? Sonstige Anregungen?
grundsätzlich kann man nur sagen : die XBPSYSCLR_* Konstanten ergeben die einzig richtigen visuellen Styles.
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Darstellungsproblem nach Kompilierung unter Xbase++ 1.9
je nach Version des Betriebssystems sind die SYSTEMFARBEN unterschiedlich, das ist normal (Win7 hat hellere Fensterhintergründe) wenn man visualstyles eingeschaltet hat.
Gruß
Hubert
Hubert
Re: Darstellungsproblem nach Kompilierung unter Xbase++ 1.9
Guten Morgen,
also egal wie man es dreht und wendet, bleibt es beim manuellen Aufwand.
Irgendwie nicht so mein "Ding", diese Fleißarbeit.
Eben an das Farbschema von XP angepasst.
also egal wie man es dreht und wendet, bleibt es beim manuellen Aufwand.
Im Prinzip mache ich dass so wie Tom es unter diesem Punkt beschreibt.Tom hat geschrieben:1. Eigene XbpDialog-Klasse ableiten und Methode "Init" überschreiben.
Irgendwie nicht so mein "Ding", diese Fleißarbeit.
Kann der Frage nicht folgen. Was ist denn der Unterschied zwischen den Beiden?AUGE_OHR hat geschrieben:Frage : welche v1.9.355 SL1 Version verwendest du ? die ge-PATCH-te Version oder die "Full" ?
Die PB sind aus einer abgeleiteten Klasse. Ursprünglich von "irgendjemanden" (es geht um die "flachen") erstellt und dann von nach meinen Wünschen angepasst.AUGE_OHR hat geschrieben:hm ... wieso grau mit XP Manifest ?
Eben an das Farbschema von XP angepasst.
Gruß,
Magic
Magic
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Darstellungsproblem nach Kompilierung unter Xbase++ 1.9
Naja ganz ohne Arbeit geht es nun doch nicht.Magic hat geschrieben:also egal wie man es dreht und wendet, bleibt es beim manuellen Aufwand
man kann nur versuchen daraus zu lernen und es jetzt richtig machen und für "Fenster"*** Farben die XBPSYSCLR_* Konstanten verwenden.
***jedes Control ist im Prinzip ein Fenster ...
JA ... die ge-PATCH-te Version ist default ohne visual StyleMagic hat geschrieben:Kann der Frage nicht folgen. Was ist denn der Unterschied zwischen den Beiden?AUGE_OHR hat geschrieben:Frage : welche v1.9.355 SL1 Version verwendest du ? die ge-PATCH-te Version oder die "Full" ?
was hast du als Farbe genommen ? die XBPSYSCLR_* Konstanten ?Magic hat geschrieben:Die PB sind aus einer abgeleiteten Klasse. Ursprünglich von "irgendjemanden" (es geht um die "flachen") erstellt und dann von nach meinen Wünschen angepasst.AUGE_OHR hat geschrieben:hm ... wieso grau mit XP Manifest ?
Eben an das Farbschema von XP angepasst.
ich nehme mal an das es sich dabei um ImageButton handelt, also mit Image + Text.
wenn ich mich nicht irre wird dabei eine Static "über" den Button gelegt um darauf das Image + Text zu malen.
In diesem Fall sollte der XbpPushbutton XBPSYSCLR_BUTTONMIDDLE haben und die Static XBPSYSCLR_TRANSPARENT
und das Image muss natürlich selbst Transparency beherrschen.
Sollte die Class Ownerdraw verwenden dann such mal ob du GraBackGround() findest was dir den visual Style gibt.
Note : wenn man SkinFramework verwendet wird bei GraBackGround() nur Elemente des allgemeine System Theme und nicht das verwendete Theme zurückgegeben.
gruss by OHR
Jimmy
Jimmy
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Darstellungsproblem nach Kompilierung unter Xbase++ 1.9
Welche Fleißarbeit? Kann Dein Sourcecode-Editor kein Suchen&Ersetzen über mehrere Dateien hinweg? Einmal die Klasse abgeleitet und dann überall aus XbpDialog MyXbpDialog o.ä. gemacht - das isses auch schon.Irgendwie nicht so mein "Ding", diese Fleißarbeit.
Herzlich,
Tom
Tom