CreateImage / ImageGadget

Für allgemeine Fragen zur Programmierung mit PureBasic.
sobi
Beiträge: 170
Registriert: 05.02.2005 23:41
Wohnort: passau
Kontaktdaten:

CreateImage / ImageGadget

Beitrag 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()
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
glubschi90
Beiträge: 274
Registriert: 04.09.2004 01:43
Wohnort: Würzburg

Beitrag 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.
PureBasic 4.30
sobi
Beiträge: 170
Registriert: 05.02.2005 23:41
Wohnort: passau
Kontaktdaten:

Dankeschön

Beitrag 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:
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag 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
Antworten