Hintergrundgrafik überlappt Buttons
Hintergrundgrafik überlappt Buttons
Hallo,
ich bin noch Neuling bei PureBasic, finde es aber bisher echt klasse. Nun habe ich schon so einiges
an Code geschrieben, nicht zuletzt auch mit Hilfe von Freunden und den Hilfen hier im PureBoard...
aaaaaber... nun möchte ich eine Hintergrundgrafik einbinden was auch gelingt. Dann desweiteren
solle etwas per Button auswählbar sein. Die Button sollen aber ohne "Rahmen" angezeigt werden.
ich benutze den Befehlt ButtonImageGadget, nur damit werden die Rahmen mit angezeigt, nun soll es
auch mit ImageGadget eben ohne Button davor gehen, nur damit werden meine Buttons nicht mehr angezeigt.
Habe schon gegoogelt und so, aber nichts passendes gefunden, kann mir bitte jemand helfen und eben
erklären, wie ich ich es hinbekommen kann, dass die Hintergrundgrafik die Buttons nicht mehr verdeckt.
Besten Dank schon mal im vorraus....
MFG
ich bin noch Neuling bei PureBasic, finde es aber bisher echt klasse. Nun habe ich schon so einiges
an Code geschrieben, nicht zuletzt auch mit Hilfe von Freunden und den Hilfen hier im PureBoard...
aaaaaber... nun möchte ich eine Hintergrundgrafik einbinden was auch gelingt. Dann desweiteren
solle etwas per Button auswählbar sein. Die Button sollen aber ohne "Rahmen" angezeigt werden.
ich benutze den Befehlt ButtonImageGadget, nur damit werden die Rahmen mit angezeigt, nun soll es
auch mit ImageGadget eben ohne Button davor gehen, nur damit werden meine Buttons nicht mehr angezeigt.
Habe schon gegoogelt und so, aber nichts passendes gefunden, kann mir bitte jemand helfen und eben
erklären, wie ich ich es hinbekommen kann, dass die Hintergrundgrafik die Buttons nicht mehr verdeckt.
Besten Dank schon mal im vorraus....
MFG
Re: Hintergrundgrafik überlappt Buttons
@Melvin71, wenn du dein Beispielcode hier posten würdest, könnten wir auch helfen und dir zeigen, wo dein Denkfehler ist.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Re: Hintergrundgrafik überlappt Buttons
Hallo,
ok das könnte vielleicht wirklich hilfreich sein
Hier also der Code:
__________________________________________________
Code-Tags hinzugefügt
10.05.2013
RSBasic
ok das könnte vielleicht wirklich hilfreich sein

Hier also der Code:
Code: Alles auswählen
#IDC_BITMAP=$5DC
UsePNGImageDecoder()
UseJPEGImageDecoder()
;# Lädt das OGG Vorbis Plugin von PureBasic
UseOGGSoundDecoder()
;# WENN NICHT InitSound() initialisiert werden konnnte
If Not InitSound()
MessageRequester("Error", "Sound konnte nicht initialisiert werden")
EndIf
;# WENN NICHT InitMovie() initialisiert werden konnnte
If Not InitMovie()
MessageRequester("Error", "Movie konnte nicht initialisiert werden")
EndIf
OpenWindow(0, 0, 0, 800, 600, "ButtonImage", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
LoadImage(0,"Wallpaper\mond800x600.jpg")
LoadImage(1, "Button\Button1.jpg") ; ändern Sie den 2. Parameter in den Pfad/Dateinamen Ihres Bildes
LoadImage(2, "Button\eigener1.png")
ImageGadget(0,0,0,800,600,ImageID(0))
DisableGadget(0,1)
ButtonImageGadget(1, 180, 400, 50, 50, ImageID(1))
ButtonImageGadget(2, 260, 400, 80, 50, ImageID(2))
Procedure Button2()
#SOUND_DATEI = 1
LoadSound(0, "Sound_Effekte\Help me.wav")
PlaySound(0)
EndProcedure
Procedure PlayMukke()
;# SoundDatei.s speichert den kompletten Pfad und Dateiname // OpenFileRequester() öffnet ein Auswahlfenster für Dateien
SoundDatei.s = OpenFileRequester("Datei auswählen", "", "C:\", 0)
;# Zeigt in der IDE im Debugger die gespeicherte Variable SoundDatei.s
;Debug SoundDatei.s
;# WENN NICHT SoundDatei.s leer ist
If Not SoundDatei.s = ""
;# Wandelt den Dateiname in Kleinschreibung um // GetExtensionPart() zeigt die Dateiendung an
If LCase(GetExtensionPart(SoundDatei.s)) = "mp3"
;# WENN NICHT Datei existiert
If Not LoadMovie(0, SoundDatei.s)
MessageRequester("Error", "Datei konnte nicht geladen werden.")
;# SONST
Else
;OpenWindow(0, 10, 10, 0, 0, "", #PB_Window_SystemMenu | #PB_Window_Invisible)
;# WENN NICHT Datei existiert
If Not PlayMovie(0, WindowID(0))
MessageRequester("Error", "Datei konnte nicht abgespielt werden.")
EndIf
EndIf
;# SONST
Else
;# WENN NICHT Sound geladen werden konnte
If Not LoadSound(0, SoundDatei.s)
MessageRequester("Error", "Datei konnte nicht geladen werden.")
;# SONST
Else
;# WENN NICHT Sound abgespielt werden konnte
If Not PlaySound(0)
MessageRequester("Error", "Datei konnte nicht abgespielt werden.")
EndIf
EndIf
EndIf
EndIf
EndProcedure
;# 10000 Millisekunden Verzögerung (Damit der Sound auch etwas abgespielt wird)
Repeat
event = WaitWindowEvent()
;
; Select Event
;
;
; Case #PB_Event_Gadget
;
; Select EventGadget()
;
; Case 2
;
; If EventType() = #PB_EventType_LeftClick
;
; MessageRequester("Info", "Button geklickt")
;
; EndIf
;
; EndSelect
;
; EndSelect
If event = #PB_Event_Gadget
If EventGadget() = 1
PlayMukke()
EndIf
If EventGadget() = 2
Button2()
EndIf
EndIf
Until event = #PB_Event_CloseWindow
Code-Tags hinzugefügt
10.05.2013
RSBasic
Re: Hintergrundgrafik überlappt Buttons
und was ist mit Tee ? äh ich mein den Bildern ?
Woher soll unsereins denn wissen welche Ausmaße die haben.... (ausser beim mond800x600 bild
)
Und quaken soll datt Dingens auch....
Tip: Benutze TS-Soft's oder Stargates IDE-Tool um Dateien als DataSection einzubinden, oder falls das nicht funktioniert,
weil die Dateien zu gross sind, erstelle sie zur Laufzeit. Stichwort : CreateImage(),
oder nehme die Bilder und Sounds aus dem Installationsordner von PB (Examples), die eigentlich jeder haben sollte ...
oder alles in ein Zip und hochladen und uns den link präsentieren.
Woher soll unsereins denn wissen welche Ausmaße die haben.... (ausser beim mond800x600 bild

Und quaken soll datt Dingens auch....
Tip: Benutze TS-Soft's oder Stargates IDE-Tool um Dateien als DataSection einzubinden, oder falls das nicht funktioniert,
weil die Dateien zu gross sind, erstelle sie zur Laufzeit. Stichwort : CreateImage(),
oder nehme die Bilder und Sounds aus dem Installationsordner von PB (Examples), die eigentlich jeder haben sollte ...
oder alles in ein Zip und hochladen und uns den link präsentieren.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Re: Hintergrundgrafik überlappt Buttons
....also ich benutze die neuste PB-Version.
Bei mir funktioniert das Programm einwandfrei, so wie es sein soll.
Da wird nichts überdeckt.
Als Anfänger würde ich mal den neuen Form-Designer mal ausprobieren.
Dann siehst du, welchen Code er erstellt.
Bei mir funktioniert das Programm einwandfrei, so wie es sein soll.
Da wird nichts überdeckt.
Als Anfänger würde ich mal den neuen Form-Designer mal ausprobieren.
Dann siehst du, welchen Code er erstellt.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Hintergrundgrafik überlappt Buttons
Für Button ohne Rahmen ist das CanvasGadget gut geeignet. Hier noch ein Beispiel, das
wohl etwas gross für Dein Vorhaben ist, aber vielleicht kannst Du Dir dort doch noch ein
paar Anregungen rauspicken: http://www.purebasic.fr/english/viewtop ... 12&t=53623
Gruß
Thomas
wohl etwas gross für Dein Vorhaben ist, aber vielleicht kannst Du Dir dort doch noch ein
paar Anregungen rauspicken: http://www.purebasic.fr/english/viewtop ... 12&t=53623
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Hintergrundgrafik überlappt Buttons
Erstmal vielen Dank für die schnellen Antworten und die Hilfen.
Es geht nicht darum. dass der Code wo wie ich ihn gepostet habe, nicht funktioniert,
sondern darum, dass, wenn ich nicht BUTTONImageGadget bla bla schreibe,
sondern nur ImageGadget, die Buttons nicht mehr angezeigt werden, aber immer noch klickbar sind.
Die Buttons werden einfach unsichtbar.
Und einen Designer möchte ich absichtlich nicht nutzen, da ich den Code von Anfang an kennen lernen
möchte. Denke das es einfach mehr Lerneffekt mit sich bringt^^
MFG
Es geht nicht darum. dass der Code wo wie ich ihn gepostet habe, nicht funktioniert,
sondern darum, dass, wenn ich nicht BUTTONImageGadget bla bla schreibe,
sondern nur ImageGadget, die Buttons nicht mehr angezeigt werden, aber immer noch klickbar sind.
Die Buttons werden einfach unsichtbar.
Und einen Designer möchte ich absichtlich nicht nutzen, da ich den Code von Anfang an kennen lernen
möchte. Denke das es einfach mehr Lerneffekt mit sich bringt^^
MFG
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Hintergrundgrafik überlappt Buttons
Das Problem ist ganz einfach, dass es von vorne rein nicht so gedacht ist, dass man Gadgets überlappen kann. Du hast vermutet, dass du ein großes ImageGadget als Hintergrund machen kannst und darüber dann andere Buttons legen kannst. Das macht aber sicherlich jedes Betriebssystem anders und wahrscheinlich sogar verschiedene Windows-Distributionen auch nochmal anders.
Sauber ist das also nicht. Es gibt die Möglichkeit ein Fenster zu skinnen. Vielleicht solltest du das in Betracht ziehen. Einfach mal im Forum suchen. Soweit ich weiß, gibt es da allerdings nur Lösungen für Windows. Eine andere Möglichkeit wäre komplett ein CanvasGadget() zu nutzen und dann die Buttons auch selbst zu zeichnen.
Sauber ist das also nicht. Es gibt die Möglichkeit ein Fenster zu skinnen. Vielleicht solltest du das in Betracht ziehen. Einfach mal im Forum suchen. Soweit ich weiß, gibt es da allerdings nur Lösungen für Windows. Eine andere Möglichkeit wäre komplett ein CanvasGadget() zu nutzen und dann die Buttons auch selbst zu zeichnen.
Re: Hintergrundgrafik überlappt Buttons
....und warum hast du dann nicht den Code mit "ImageGadget" gepostet.Melvin71 hat geschrieben:Es geht nicht darum. dass der Code wo wie ich ihn gepostet habe, nicht funktioniert,
sondern darum, dass, wenn ich nicht BUTTONImageGadget bla bla schreibe,
Dann wäre das Problem auch zu sehen gewesen.
Da hast du ein Denkfehler.Melvin71 hat geschrieben:Und einen Designer möchte ich absichtlich nicht nutzen, da ich den Code von Anfang an kennen lernen
möchte. Denke das es einfach mehr Lerneffekt mit sich bringt^^
Ich schrieb ja nicht, das der Form-Designer zur kompletten Codegenerierung genutzt werden sollte.
Wenn man z. B. ein Imagegadget im Designer erstellt und danach sich den generierten Code anschaut,
dann noch mit den Flags etwas spielt, hat mehr mehr Lernerfolg als wenn man einen gesamten Programmcode sich vornimmt.
__________________________________________________
Quote-Tags richtig gesetzt
10.05.2013
RSBasic
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Re: Hintergrundgrafik überlappt Buttons
Hier hast du eine Lösung für dein Problem:
Code: Alles auswählen
OpenWindow(0, 0, 0, 800, 600, "ButtonImage", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
LoadImage(0,"Wallpaper\mond800x600.jpg")
hbrBackground = CreatePatternBrush_(ImageID(0))
SetClassLong_(WindowID(0),#GCL_HBRBACKGROUND,hbrBackground)
LoadImage(1, "Button\Button1.jpg") ; ändern Sie den 2. Parameter in den Pfad/Dateinamen Ihres Bildes
LoadImage(2, "Button\eigener1.png")
;ImageGadget(0,0,0,800,600,ImageID(0))
;DisableGadget(0,1)
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9