Seite 1 von 1

Transparenz, Hintergrundfarbe bei Gadgets

Verfasst: 21.05.2007 09:03
von teachco
SetGadgetColor für Vorder- und Hintergrund von Gadgets funktioniert ja schon teilweise.

a) Wünschenswert wäre es aber, wenn Gadgets, wie Checkbox, Option u.a. auch darauf reagieren. Das würde PB runder und benutzerfreundlicher machen.

b) Graue Boxen als Hintergrund von Gadgets sind bei farbigem Hintergrund nicht gerade akttraktiv. Die Möglichkeit, als Hintergrundfarbe transparent wählen zu können, wäre ideal, ist aber nciht vorhanden.

Wer gerne mit der WinAPI arbeitet und es komplizierter mag, wird diese Sachen nicht vermissen, aber für viele andere wären diese Features sicher wichtig.

Die ColorLib von gnozal kenne ich. Leider habe ich i.Z.m. transparent Seiteneffekte festgestellt. Probleme wie unter a) lassen sich damit aber gut lösen.

Verfasst: 21.05.2007 11:15
von Kaeru Gaman
aufgrund von kompatibilität ist sowas nicht möglich.

a) nicht alle Fensterelemente besitzen nativ eine veränderbare hintergrundfarbe.
das Objekt reagiert einfach nicht auf den Veränderten eintrag in seinem Attribut.
das kannst du auch feststellen, wenn du in VB6 z.b. bei einem Button die Eigenschaft
"Hintergrundfarbe" veränderst. im gegensatz zu anderen Gadgets, reagiert ein Button nicht,
auch nicht in einer Microsoft-Entwicklungsumgebung.
wenn du also einen button mit angepasster hintergrundfarbe siehst,
dann ist das ein skinning-trick oder sonstwas, aber keine veränderung seiner grundeigenschaft "Hintergrundfarbe".

b) Transparenz ist erstrecht keine native Objekteigenschaft.
ich habe mich damit noch nicht weitergehend auseinandergesetzt,
aber ich gehe davon aus, dass es sich um eine zusätzliche API-funktion handelt,
die die darstellung manipuliert, nicht die objekteigenschaften.

gerade bei Fensterelementen will PB immer großtmögliche Plattformkompatibilität erreichen.
es widerspräche also seiner philosophie, das ansprechen von zusätzlichen API-Funktionen
unter Win so einzubinden, als sei es eine grundlegende objekteigenschaft.

die grundfunktionen von PB werden stets so gestaltet bleiben, dass sie möglichst einheitlich für alle drei plattformen sind.

natürlich spricht nichts dagegen, für solche grundfunktionen erweiterungen zur verfügung zu stellen.

da solltest du mal in die PBOSL und in das IncludePack und ins CodeArchiv schaun,
ob solche zusatzfunktionen nicht schon ausgiebig programmiert wurden.

Verfasst: 21.05.2007 13:01
von teachco
Ja, das hört sich plausibel an. Das ist zumindest eine Erklärung, die ev. auch erklärt, warum die PureColor-Lib Seiteneffekte zum XP-Skin-Support zeigt.
Da gibt es dann so einige Variationen, wann etwas funktioniert oder nicht. Nicht gerade gut für produktives Arbeiten.
Auf jeden Fall aber danke für die Erklärungen.

Verfasst: 28.05.2007 00:57
von Olaf
Teilweise witzige Resultate erhält man aber auch, wenn man Gadgets wie Fenster anspricht. Auf einige Dinge reagieren die:

Code: Alles auswählen

hWin=OpenWindow(0,0,0,200,100,"Test",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CreateGadgetList(hWin)
ButtonGadget(0,50,25,100,50,"Test",#PB_Window_SystemMenu)
hGad=GadgetID(0)
ShowWindow_(hGad,#SW_MINIMIZE)
Repeat
event=WaitWindowEvent()
Until event=#PB_Event_CloseWindow
Aber im Folgenden entsteht auch ganz schön Unfug dadurch:

Code: Alles auswählen

hWin=OpenWindow(0,0,0,200,100,"Test",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CreateGadgetList(hWin)
ButtonGadget(0,50,25,100,50,"Test",#PB_Window_WindowCentered)
hGad=GadgetID(0)
ShowWindow_(hGad,#SW_MINIMIZE)
Repeat
event=WaitWindowEvent()
Until event=#PB_Event_CloseWindow
:lol:

Verfasst: 28.05.2007 01:03
von edel
Gadget sind Fenster.

Verfasst: 28.05.2007 01:05
von Olaf
eben.