Seite 1 von 1

Grafiken hinter Button

Verfasst: 21.08.2005 04:17
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

Verfasst: 06.10.2005 14:50
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.

Verfasst: 06.10.2005 14:53
von bobobo
Oder so

das Hinterngrundbild packst Du in ein Imagegadget welches Du disablest.

Verfasst: 06.10.2005 15:12
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

Verfasst: 06.10.2005 16:00
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

Verfasst: 06.10.2005 16:06
von AND51
dankeschön

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

Verfasst: 06.10.2005 16:22
von bobobo
deshalb gibt's ja das board hier :)

Verfasst: 06.10.2005 23:22
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?

Verfasst: 06.10.2005 23:30
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