Grafiken hinter Button

Für allgemeine Fragen zur Programmierung mit PureBasic.
Dking
Beiträge: 3
Registriert: 21.08.2005 04:15

Grafiken hinter Button

Beitrag von Dking »

Hi,
ich habe eine paar Buttons per ButtonGadget(erstellt).
Ich will nun dem ganzen ein Hintergrundbild geben. Wie schaffe ich das das die Buttons auf den Hintergrund gezeichnet werden. Also das die der Hintergrund teilweise durch die Buttons verdeckt wird.

Dabei soll das programm Linux kompatibel bleiben.

mfg
DKing
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Hallo!

Logisch gesehen müsste es so gehen:
Sag dem Programm zuerst, dass er das Bild auf dem Fenster darfstellen soll (im OpenWindow-fenster). Dann sagst du ihm, dass der Knopf -wo auch immer- erstellt werden soll.

Normalerweise müsste auf diese Weise ert das Bild geladen und angezeigt werden und dann müsste der Knopf auf das bild kommen, oder nicht?

Ich hatte nämlich schon ähnliche Probleme, zum Beispiel wenn ich zwei Gadget übereinanderlappen lssen wollte:
das gadget, dass ich zuerst in der CreateGadgetListe aufgerufen habe, kam unter das (oder heißt das "den") gadget, der als 2. / lettes aufgerufen wurde.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Oder so

das Hinterngrundbild packst Du in ein Imagegadget welches Du disablest.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

bobobo hat geschrieben:das Hinterngrundbild packst Du in ein Imagegadget welches Du disablest
Kannst du ein kurzes Beispiel geben? Wie soll man denn ein Imagegadget disablen? (sinn ???)

und was du noch nicht gesagt hast: wo soll dann der knopf positioniert werden? wie gewünscht auf dem bild?

thx, AND51
Zuletzt geändert von AND51 am 25.12.2007 01:58, insgesamt 1-mal geändert.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

bitteschön

Code: Alles auswählen

Enumeration
  #Window_0
  #Button_0
  #Button_1
  #Button_2
  #Button_3
  #Button_4
  #Image_0
  #IMAGE_caught
EndEnumeration
UseJPEGImageDecoder()
Global Image0
Image0 = CatchImage(#IMAGE_caught, ?Image0)
DataSection
Image0:
IncludeBinary "Z:\Neuer Ordner (10)\12.jpg" ; <- HIER EIN EIGENS BILD HINPACKEN
EndDataSection
If OpenWindow(#Window_0, 258, 2, 600, 300,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "New window ( 0 )")
  If CreateGadgetList(WindowID())
    ResizeImage(#IMAGE_caught, WindowWidth(), WindowHeight()) ;<- Bild wird auf die Fenstergröße skaliert
    Image0=UseImage(#Image_Caught) ;<- und neu zugewiesen                das kann man auch dynamisch machen in der repeatschleife weiter unten
    ImageGadget(#Image_0, 0, 0, WindowWidth(), WindowHeight(), Image0)
    DisableGadget(#Image_0,1)
    ButtonGadget(#Button_0, 85, 80, 55, 25, "")
    ButtonGadget(#Button_1, 190, 65, 30, 20, "")
    ButtonGadget(#Button_2, 300, 55, 110, 40, "")
    ButtonGadget(#Button_3, 260, 150, 70, 45, "")
    ButtonGadget(#Button_4, 140, 165, 50, 50, "")
  EndIf
EndIf

Repeat ; Start of the event loop
  Event = WaitWindowEvent() ; This line waits until an event is received from Windows
  WindowID = EventWindowID() ; The Window where the event is generated, can be used in the gadget procedures
  GadgetID = EventGadgetID() ; Is it a gadget event?
  EventType = EventType() ; The event type
  ;You can place code here, and use the result as parameters for the procedures
  If Event = #PB_EventGadget
    If GadgetID = #Button_0
    ElseIf GadgetID = #Button_1
    ElseIf GadgetID = #Button_2
    ElseIf GadgetID = #Button_3
    ElseIf GadgetID = #Button_4
    ElseIf GadgetID = #Image_0
    EndIf
  EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

dankeschön

wenn ich fragen habe, kann ich sie dir dann nochmal stellen?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

deshalb gibt's ja das board hier :)
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Nur wenn du Zeit hast bittediese Frage beantworten:
bobobo hat geschrieben:UseJPEGImageDecoder()
Global Image0
Image0 = CatchImage(#IMAGE_caught, ?Image0)
DataSection
Image0:
IncludeBinary "Z:\Neuer Ordner (10)\12.jpg" ; <- HIER EIN EIGENS BILD HINPACKEN
EndDataSection
Kann ich irgendwie das Bild mit dieser Methode mit in die exe-Datei aufnehmen, beim kompilieren, sodass ich Freunden nur die endgültige, kompilierte exe-Datei geben brauche?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Kann ich irgendwie das Bild mit dieser Methode mit in die exe-Datei
> aufnehmen, beim kompilieren, sodass ich Freunden nur die endgültige,
> kompilierte exe-Datei geben brauche?

ja. [c]IncludeBinary()[/c] sorgt dafür, dass die angegebene Datei mit in die EXE
einkompiliert wird. Nähere Infos findest Du im Handbuch (Cursor im Editor auf
[c]IncludeBinary[/c] stellen und dann <F1> drücken).

Grüße ... Kiffi
a²+b²=mc²
Antworten