Transparenz, Hintergrundfarbe bei Gadgets

Fragen und Bugreports zur PureBasic 4.0-Beta.
teachco
Beiträge: 48
Registriert: 12.07.2005 19:44

Transparenz, Hintergrundfarbe bei Gadgets

Beitrag 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.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
teachco
Beiträge: 48
Registriert: 12.07.2005 19:44

Beitrag 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.
Benutzeravatar
Olaf
Beiträge: 117
Registriert: 20.04.2006 14:51
Wohnort: 66606 St.Wendel (Niederlinxweiler, Dr.Albert-Schweitzer-Str.9)
Kontaktdaten:

Beitrag 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:
PB 4.xx (Windows & Linux & Mac OS X)
Treffen sich 2 Kurven in der Unendlichkeit. Sagt die eine zur anderen: "Hau ab aus meinem Definitionsbereich oder ich leite dich ab!"
Darauf die andere: "Mach nur! Ich bin die e-Funktion." :lol:
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Gadget sind Fenster.
Benutzeravatar
Olaf
Beiträge: 117
Registriert: 20.04.2006 14:51
Wohnort: 66606 St.Wendel (Niederlinxweiler, Dr.Albert-Schweitzer-Str.9)
Kontaktdaten:

Beitrag von Olaf »

eben.
PB 4.xx (Windows & Linux & Mac OS X)
Treffen sich 2 Kurven in der Unendlichkeit. Sagt die eine zur anderen: "Hau ab aus meinem Definitionsbereich oder ich leite dich ab!"
Darauf die andere: "Mach nur! Ich bin die e-Funktion." :lol:
Gesperrt