SkinWin (PureTools) .. will nicht funktionieren

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
SirCus
Beiträge: 182
Registriert: 10.09.2004 11:44
Wohnort: München
Kontaktdaten:

SkinWin (PureTools) .. will nicht funktionieren

Beitrag 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?
2D Game H.E.R.A. (Entwicklung eingefroren)
www.chamaeleo-fx.de.vu

- mein Lieblingszitat
"die Informationsumwelt wird von einer fürchterlichen Menge an Unsinn und Lügen verschmutzt" (Stanislaw Lem, Lokaltermin, 1954 (!) )
http://www.stanislaw-lem.de/zitate/zitate.shtml
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
SirCus
Beiträge: 182
Registriert: 10.09.2004 11:44
Wohnort: München
Kontaktdaten:

Beitrag 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?
2D Game H.E.R.A. (Entwicklung eingefroren)
www.chamaeleo-fx.de.vu

- mein Lieblingszitat
"die Informationsumwelt wird von einer fürchterlichen Menge an Unsinn und Lügen verschmutzt" (Stanislaw Lem, Lokaltermin, 1954 (!) )
http://www.stanislaw-lem.de/zitate/zitate.shtml
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag 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:
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
SirCus
Beiträge: 182
Registriert: 10.09.2004 11:44
Wohnort: München
Kontaktdaten:

Beitrag 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
2D Game H.E.R.A. (Entwicklung eingefroren)
www.chamaeleo-fx.de.vu

- mein Lieblingszitat
"die Informationsumwelt wird von einer fürchterlichen Menge an Unsinn und Lügen verschmutzt" (Stanislaw Lem, Lokaltermin, 1954 (!) )
http://www.stanislaw-lem.de/zitate/zitate.shtml
Antworten