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 :wink:

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