Seite 1 von 1
SkinWin (PureTools) .. will nicht funktionieren
Verfasst: 25.09.2004 11:36
von SirCus
Tag allerseits..
folgender Code
Code: Alles auswählen
WindowID = OpenWindow(#PB_Any, 400, 400, 1000, 630, #PB_Window_BorderLess | #PB_Window_ScreenCentered "AMISe")
SetWinBackgroundImage(WindowID, LoadImage(1,"Kasse.jpg"))
will das Bild nicht anzeigen
auch SkinWin() und SetWinBackgroundColor() ändern nichts am standard-einheitsgrau meiner Anwendung..
..mcah ich was falsch?
Das Bild kann geladen werden, Fehlermeldungen kommen keine.
..mich verwundert das, denn ich hab das Bereits schonmal benutzt früher und es klappt da super (bei Startscreen von HERA).
Ich finde da auch keinen Fehler, deshalb.. habt ihr Ideen für evtl Fehlerquellen oder entdeckt ihr einen Fehler im Code?
Verfasst: 25.09.2004 12:04
von DarkDragon
Code: Alles auswählen
WindowID = OpenWindow(#PB_Any, 400, 400, 1000, 630, #PB_Window_BorderLess | #PB_Window_ScreenCentered "AMISe")
UseJPEGImageDecoder()
SetWinBackgroundImage(WindowID, LoadImage(1,"Kasse.jpg"))
Das dürfte funktionieren, wenn nicht nimm ein bmp und kein jpg.
[EDIT]
Achso, naja, also die WindowID ist das ja nicht. Es ist nur die PBID. Wenn du PB_Any weglässt und ne Zahl einsetzt, dann gehts.
Verfasst: 25.09.2004 13:15
von SirCus
tatsache.... soweit gehts..
nur steh ich nun vor dem nächsten Problem:
95% des Fensters ist mit einem PanelGadget ausgefüllt, welches nicht transparent ist.
Somit lugt das Hintergrundbild nur ganz klein dahinter hervor.
..ich erklär einfach kurz was ich eigentlich will:
jeder Panel sollte ein anderes Hintergrund bild haben
ODER bei jedem klick auf ein anderes Panel, soll das gesamte Hintergrundbild geändert werden.
ideen?
Verfasst: 25.09.2004 13:18
von Lars
DarkDragon hat geschrieben:Wenn du PB_Any weglässt und ne Zahl einsetzt, dann gehts.
Da #PB_Any aber schon irgendwie sexy ist, ist die sehr viel bessere
Methode, [c]WindowID(WindowID)[/c] und #PB_Any zu benutzen. Dann
weiß man auch, was man macht und probiert nicht mit verschiedenen
#WindowIDs rum

Verfasst: 25.09.2004 13:36
von DarkDragon
@Lars, das ist aber für jemanden der PB_Any noch nich sehr gut kennt nicht gerade einfach zu verstehen. Manche Leute fragen sich ja auch noch, was der Sinn und Zweck eines Handles und einer ID ist.
@SirCus:
Code: Alles auswählen
OpenWindow(#PB_Any, 0, 0, 512, 512, #PB_Window_BorderLess | #PB_Window_ScreenCentered, "AMISe")
UseJPEGImageDecoder()
CreateGadgetList(WindowID())
PanelGadget(0, 10, 10, 484, 484)
For k=1 To 2
AddGadgetItem(0, -1, "Test "+Str(k))
ButtonGadget(k, 10, 10, 200, 30, "Quit")
Next
CloseGadgetList()
For k=0 To 1
CreateImage(k, 512, 512)
StartDrawing(ImageOutput())
For x=0 To 511
For y=0 To 511
If m = 0
Plot(x, y, RGB(x/2, ((x/2)+(y/2))/2, y/2))
Else
Plot(x, y, RGB(y/2, ((x/2)+(y/2))/2, x/2))
EndIf
Next y
Next x
StopDrawing()
If m=0 : m=1 : Else : m=0 : EndIf
Next
SetWinBackgroundImage(GadgetID(0), UseImage(0))
Repeat
Event = WindowEvent()
If Event = #PB_Event_Gadget And EventGadgetID() = 0
SetWinBackgroundImage(GadgetID(0), UseImage(GetGadgetState(0)))
EndIf
Until Event = #PB_Event_Gadget And EventGadgetID() <> 0
For k=0 To 1
FreeImage(k)
Next
End
Unter WinXP funktionierts.
Verfasst: 25.09.2004 13:57
von SirCus
klasse,
mir war nicht bewusst, dass man SetWinBackgroundImage auch auf Gadgets anwenden kann.. auf diese Idee kam ich nicht .
So hab ichs jetz gelöst:
Code: Alles auswählen
Gadget=EventGadgetID() ; sonst flickerts
Select Gadget
Case #Panelgadget ; man braucht ja nur wechseln wenn das Panel gewechselt wird.
Panel=GetGadgetState(#Panelgadget) ; zeigt das gewählte Panel an
Select Panel
Case 0
SetWinBackgroundImage(GadgetID(#Panelgadget), UseImage(1))
Case 1
SetWinBackgroundImage(GadgetID(#Panelgadget), UseImage(2))
EndSelect
EndSelect
das funktioniert super