Darstellungsproblem nach Kompilierung unter Xbase++ 1.9 SL1

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

Antworten
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Darstellungsproblem nach Kompilierung unter Xbase++ 1.9 SL1

Beitrag von Magic »

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?
Gruß,
Magic
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: Darstellungsproblem nach Kompilierung unter Xbase++ 1.9

Beitrag von Tom »

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.
Herzlich,
Tom
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: Darstellungsproblem nach Kompilierung unter Xbase++ 1.9

Beitrag von AUGE_OHR »

Magic hat geschrieben:unter XP und Xbase++1.9 ... unter WIN7 64bit und Xbase++ 1.9 SL1
und schon mal unter Win 8x versucht ;)

dort sehen die Theme ( = visual Style ) ja wieder anders aus als unter XP, Vista oder Win 7
Magic hat geschrieben:Aber nein, alle Pushbuttons bleiben grau.
hm ... wieso grau mit XP Manifest ?

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.
Magic hat geschrieben:Gibt es dafür ein Allheilmittel? Tipps? Ideen? Sonstige Anregungen?
Frage : welche v1.9.355 SL1 Version verwendest du ? die ge-PATCH-te Version oder die "Full" ?

grundsätzlich kann man nur sagen : die XBPSYSCLR_* Konstanten ergeben die einzig richtigen visuellen Styles.
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Darstellungsproblem nach Kompilierung unter Xbase++ 1.9

Beitrag von brandelh »

je nach Version des Betriebssystems sind die SYSTEMFARBEN unterschiedlich, das ist normal (Win7 hat hellere Fensterhintergründe) wenn man visualstyles eingeschaltet hat.
Gruß
Hubert
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Darstellungsproblem nach Kompilierung unter Xbase++ 1.9

Beitrag von Magic »

Guten Morgen,

also egal wie man es dreht und wendet, bleibt es beim manuellen Aufwand.
Tom hat geschrieben:1. Eigene XbpDialog-Klasse ableiten und Methode "Init" überschreiben.
Im Prinzip mache ich dass so wie Tom es unter diesem Punkt beschreibt.
Irgendwie nicht so mein "Ding", diese Fleißarbeit.
AUGE_OHR hat geschrieben:Frage : welche v1.9.355 SL1 Version verwendest du ? die ge-PATCH-te Version oder die "Full" ?
Kann der Frage nicht folgen. Was ist denn der Unterschied zwischen den Beiden?
AUGE_OHR hat geschrieben:hm ... wieso grau mit XP Manifest ?
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.
Eben an das Farbschema von XP angepasst.
Gruß,
Magic
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: Darstellungsproblem nach Kompilierung unter Xbase++ 1.9

Beitrag von AUGE_OHR »

Magic hat geschrieben:also egal wie man es dreht und wendet, bleibt es beim manuellen Aufwand
Naja ganz ohne Arbeit geht es nun doch nicht.
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 ...
Magic hat geschrieben:
AUGE_OHR hat geschrieben:Frage : welche v1.9.355 SL1 Version verwendest du ? die ge-PATCH-te Version oder die "Full" ?
Kann der Frage nicht folgen. Was ist denn der Unterschied zwischen den Beiden?
JA ... die ge-PATCH-te Version ist default ohne visual Style ;)
Magic hat geschrieben:
AUGE_OHR hat geschrieben:hm ... wieso grau mit XP Manifest ?
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.
Eben an das Farbschema von XP angepasst.
was hast du als Farbe genommen ? die XBPSYSCLR_* Konstanten ?

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
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: Darstellungsproblem nach Kompilierung unter Xbase++ 1.9

Beitrag von Tom »

Irgendwie nicht so mein "Ding", diese Fleißarbeit.
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.
Herzlich,
Tom
Antworten