Seite 1 von 1

CreateImage / ImageGadget

Verfasst: 15.02.2005 13:20
von sobi
Hallo,

ich habe da noch nicht den richtigen durchblick bei dem Thema, trotz einer F1 - Taste. :wink:
Wenn ich zwei Bilder auf mein Augabefester anzgeigen will, dann muss ich doch (soweit von mir verstanden) zwei mal auch der Befehl "StartDrawing" kommen, wo er mir beide male auf mein "Create Image" die gewünschten Sachen draufzeichnet, oder?
Irgendwie tut er das nicht und ich habe keinen Plan warum. :freak:
Wie gebe ich zwei "selbsterstellte" Bilder auf einem Fenster aus?

Liebe Grüße,


Simon


PS: Hier der Code, zum deutlicheren Verständnis

Code: Alles auswählen

CreateImage(0,300,700)
 StartDrawing(ImageOutput()) 
  Box(0,0,300,700,RGB(255,255,255))
  Locate (0, 20)
  DrawText("SUPERTEXT der erste") 
StopDrawing()

CreateImage(1,100,700)
 StartDrawing(ImageOutput()) 
  Box(0,0,100,700,RGB(255,2,255))
  Locate (0, 40)
  DrawText("SUPERTEXT der zweite") 
StopDrawing()

CreateGadgetList(WindowID())
    ScrollAreaGadget(1,0,0,WindowWidth(),WindowHeight(),700,700,5)   
    ImageGadget(0,0,0,300,700,UseImage(0))    
    ImageGadget(1,352,0,100,700,UseImage(1))  
CloseGadgetList()

Verfasst: 15.02.2005 14:20
von glubschi90

Code: Alles auswählen

CreateImage(0,300,700)
StartDrawing(ImageOutput())
Box(0,0,300,700,RGB(255,255,255))
Locate (0, 20)
FrontColor(0,0,0)
DrawText("SUPERTEXT der erste")
StopDrawing()

CreateImage(1,100,700)
StartDrawing(ImageOutput())
Box(0,0,100,700,RGB(255,2,255))
Locate (0, 40)
DrawText("SUPERTEXT der zweite")
StopDrawing()

OpenWindow(0,0,0,700,700,#PB_Window_MaximizeGadget,"XYZ")
CreateGadgetList(WindowID())
ScrollAreaGadget(1,0,0,WindowWidth(),WindowHeight(),700,700,5)   
ImageGadget(2,0,0,300,700,UseImage(0))   
ImageGadget(3,352,0,100,700,UseImage(1)) 
CloseGadgetList()

Repeat:Until WaitWindowEvent()=#wm_close
So funzts!
Der einzige Fehler, den ich entdeckt hab' ist, dass eines der Imagegadgets und das Scrollarea beide 1 als "#Gadget" hatten.

Dankeschön

Verfasst: 15.02.2005 18:55
von sobi
:allright:
Okay, sehe ich es positiv, es war auch nur ein Fehler. Dankeschön, jetzt funktioniert es prima! :)
Danke für deine Hilfe und vor allem für dein Wissen! :-)

Liebe Grüße,


Simon


:allright:

Verfasst: 15.02.2005 19:44
von hardfalcon
@SBI: Du solltest dir für deine Zukunft mit Basic-Dialekten generell merken, dass "durchnumerierte IDs" bei Basic IMMER mit 0, und nicht mit 1 beginnen.
Hier z.B. ein Beispiel meines 1. oder 2. selbst programmierten Hoaxes (damals hatte ich das gleiche Problem):

Code: Alles auswählen

a=InitCDAudio()
Repeat
UseCDAudio(Random(a)[b]-1[/b])  ;Beachte, dass ich hier 1 Abiehen muss,
;weil InitCDAudio() die Anzahl der CD-Laufwerke zurückgibt, und z.B. bei 2
;Laufwerk a=2, aber die ID des 2. Laufwerks nicht 2 sondern 1 ist. Das erste 
;hat die ID 0
EjectCDAudio(Random(1))
Delay(1)
ForEver
cya
Pascal