GUI/Buttons

Anfängerfragen zum Programmieren mit PureBasic.
macmark
Beiträge: 49
Registriert: 15.07.2009 16:00
Wohnort: Köln

GUI/Buttons

Beitrag von macmark »

Hi,
kennt einer von euch zufällig eine Quelle für schöne fertige Buttons mit Effekten??? Also sowas wie MouseOver, Runde Ecken usw...???
Gruss
Markus
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Compiler Optionen -> XP-Skin einschalten.
Geht natürlich nur wenn XP oder Vista installiert ist
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@mk:
ich glaub' da hast du ihn falsch verstanden...

@macmark:
das ist aber streckenweise unverhältnismäßiger Aufwand...

ich weiß nicht ob es geht, ein komplettes Skin einzubinden und nur für die eine Anwendung zu aktivieren,
ansonsten muss man sich mit einer Menge OwnerDrawn herumschlagen...
Anwendungen richtig zu skinnen ist sehr viel Arbeit.
wenn man einfach nur ein bissel fertigen Free-Content zusammenwürfelt sieht das aus wie Würfelhusten.

... und es gibt wirklich nichts Peinlicheres, als eine aufwendig geskinnte Anwendung die mangelhaft funktioniert.


... wenn du für Spiele meinen solltest, ist das natürlich was Anderes,
aber das funktioniert meistens auch anders, da wird man meistens nicht auf OS-GUI-Elemente zurückgreifen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Passend zum Thema
Die meisten Mutli. Player bieten ja einen Color Mixer für den Skin.

Ich frag mich ja wie man sowas am besten realisieren sollte.
Bild

Bild

Hier kann man in Sekunden schnelle die Komplette Farbe ändern.
Es wird also warscheinlich nicht mit Bilder gearbeitet, aber wie dann ? Plot wäre ja z.b viel zu langsam ...
Zuletzt geändert von X360 Andy am 18.07.2009 13:33, insgesamt 3-mal geändert.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Die Buttons usw. besteht nur aus Alpha-Kanälen bzw. Grauwerten.

Diese werden dann mit der jeweiligen Farbe gemischt, mit jeweiligen BlendingsModes...

Dadurch ist jede Farbe möglich ...
Jedoch imemr das gleiche Design...

Für verschiedene Formen müssten dann wiederum verschiedene Bilder gemacht werden ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Muss du jetzt wirklich den Thread hijacken und mit diesen riesigen Bildern zumüllen? /:->
Es wird also warscheinlich nicht mit Bilder gearbeitet, aber wie dann ? Plot wäre ja z.b viel zu langsam ...
Natürlich wird mit Bildern gearbeitet. Die Pixel werden im Speicher manipuliert. Erst wird von RGB nach HSL konvertiert, die neue Farbe gesetzt, dann zurück nach RGB. Hab ich selbst schon für einen Player gebastelt. Allerdings ohne Berücksichtigung des Alphakanals.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Fluid Byte hat geschrieben:Muss du jetzt wirklich den Thread hijacken und mit diesen riesigen Bildern zumüllen? /:->
Hatte den Verbesserten Post vergessen abzusenden ....


Die Graustufe des Bildes wird in Pixel ausgelesen und dann mit der einsgtellen farbe gemischt und dann wieder ausgegeben ?

Hört sich relativ einfach an.
Muss ich mir später mal ansehen ,thxes :allright:
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Hier mal n sehr sehr einfachen Beispiel wie sowas gehen könnte:

Code: Alles auswählen

UsePNGImageDecoder() 

Procedure Update()
 Farbe = Val(GetGadgetText(1))
 StartDrawing(imageOutput(0))
  Box(0, 0, 128, 128, Farbe)
  DrawAlphaImage(ImageID(1), 0, 0)
 StopDrawing()
 SetGadgetState(0, ImageID(0))
EndProcedure

OpenWindow(0, 0, 0, 240, 160, "Fenster", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
 
 CreateImage(0, 128, 128)
 LoadImage(1, "test.png")

 ImageGadget(0, 10, 10, 128, 128, ImageID(0))
 StringGadget(1, 150, 10, 80, 20, "$F0A050")
 
 Update()
 
Repeat
 Event = WaitWindowEvent()
 Select Event
  Case #PB_Event_CloseWindow
   End
  Case #PB_Event_Gadget
   Select EventGadget()
    Case 1
     Update()
   EndSelect
 EndSelect
ForEver
Das Bild dazu :
Bild
http://data.unionbytes.de/test.png

Ein mögliches Ergebnis wäre dann :
Bild

PS: das ist keinesfalls die Vorlage für ein Skinsystem, sonder nur ein Beispiel !
Zuletzt geändert von STARGÅTE am 09.07.2010 16:09, insgesamt 1-mal geändert.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Sehr geil kann man gut gebrauchen, damit lässt sich gut weiterarbeiten....
macmark
Beiträge: 49
Registriert: 15.07.2009 16:00
Wohnort: Köln

Beitrag von macmark »

Hi,
kann man sehr gut gebrauchen. Vielen Dank für die regen Antworten.
Gruss
Markus
Antworten