Ich möchte einem vorhandenen Imagegadget ein neues geladenes Image zuweisen.
Ich begreife leider das mit den Gadged IDs und Nr und Image Id und Nr nicht.
Ich bekomme es jedenfalls nicht hin.
Die Meldung lautet immer:Das angegebene #Image ist nicht initialisiert.
Das mag ja sein, geladen ist es zumindest.
Kann mir jemand ein einfaches und funktionierendes Beispiel geben?
SetGadgetState-Probleme
-
- Beiträge: 700
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
SetGadgetState-Probleme
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
Re: SetGadgetState-Probleme
Code: Alles auswählen
EnableExplicit
CreateImage(1, 100, 100, 24, RGB(128, 255, 128))
CreateImage(2, 100, 100, 24, RGB(64, 64, 255))
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ImageGadget(1, 10, 10, 0, 0, ImageID(1), 0)
ButtonGadget(2, 10, 120, 100, 20, "Ändern", 0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case 2
SetGadgetState(1, ImageID(2))
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf
- 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: SetGadgetState-Probleme
Innerhalb der Image lib arbeitet man meist mit dem Image.
Bei Verwendung mit anderer lib, mit ImageID!
Das hat den Vorteil, das auch, andere per API geladene Bilder,
dargestellt werden können.
Solange man bei Images auf #PB_Any verzichten kann, sollte man
dies auch tun, solange man die Zusammenhänge nicht so kennt.
Ich hoffe etwas Licht ins dunkle gebracht zu haben, aber kann natürlich
sein, das es jetzt noch dunkler geworden ist. Dann hilft probieren, soviele
Möglichkeiten sind es ja nicht
Gruß
Thomas
Bei Verwendung mit anderer lib, mit ImageID!
Das hat den Vorteil, das auch, andere per API geladene Bilder,
dargestellt werden können.
Solange man bei Images auf #PB_Any verzichten kann, sollte man
dies auch tun, solange man die Zusammenhänge nicht so kennt.
Ich hoffe etwas Licht ins dunkle gebracht zu haben, aber kann natürlich
sein, das es jetzt noch dunkler geworden ist. Dann hilft probieren, soviele
Möglichkeiten sind es ja nicht

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.

-
- Beiträge: 700
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: SetGadgetState-Probleme
Genau da ist mein Problem:
Ich mache das anders:
Bild(i)=loadimage(#pb_any,.....)
Die Imagegadgets habe ich so gemacht:
SpielkarteImgID(i)=imagegadget(#pb_any,10,20,30,40,imageid(bild(i)))
Nun soll das Imagegadget Img(3) das geladene Bild bild(12) bekommen.
Habs hinbekommen:
SetGadgetState(SpielkarteImgID(3),ImageID(bild(8)))
Sehr verwirrend.
Bei SetGadgetState muss ich NICHT, wie angenommen, die GadgetID angeben, sondern die NUMMER.
Dafür muss ich aber die ImageID des neuen Bildes angeben und NICHT die Nummer.
Vielen Dank für eure Hilfe (und eure Geduld mit mir
) 
Ich mache das anders:
Bild(i)=loadimage(#pb_any,.....)
Die Imagegadgets habe ich so gemacht:
SpielkarteImgID(i)=imagegadget(#pb_any,10,20,30,40,imageid(bild(i)))
Nun soll das Imagegadget Img(3) das geladene Bild bild(12) bekommen.
Habs hinbekommen:
SetGadgetState(SpielkarteImgID(3),ImageID(bild(8)))
Sehr verwirrend.
Bei SetGadgetState muss ich NICHT, wie angenommen, die GadgetID angeben, sondern die NUMMER.
Dafür muss ich aber die ImageID des neuen Bildes angeben und NICHT die Nummer.
Vielen Dank für eure Hilfe (und eure Geduld mit mir


Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
- 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: SetGadgetState-Probleme
SetGadgetState erwartet natürlich die Nummer des Gadgets. Gehört ja zur GadgetLib.
Bei dem Image wird aber die ImageID erwartet, weil gehört nicht zur GadgetLib und es sollte
auch ein Bild, das auf andere Weise geladen wurde, zum Beispiel mit API, darstellen können.
Naja, wirste wohl noch öfter durcheinander kommen, aber im Laufe der Zeit geht das über wie
...
Gruß
Thomas
Bei dem Image wird aber die ImageID erwartet, weil gehört nicht zur GadgetLib und es sollte
auch ein Bild, das auf andere Weise geladen wurde, zum Beispiel mit API, darstellen können.
Naja, wirste wohl noch öfter durcheinander kommen, aber im Laufe der Zeit geht das über wie
...
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.
