DrawText schreibt nicht auf ImageGadget
Verfasst: 16.10.2009 20:49
Vereinfachter Code:
Sinn der Sache: Bild "Fahne" wird auf das Bild "img" geschrieben und in Abhängigkeit von der Cursorposition auf im innerhalb des ScrollAreaGadgets bewegt.Gleichzeitig soll in Abhängigkeit von der Bewegung ein Text auf das Bild "Fahne" geschrieben werden.
Klappt alles im Prinzip auch wunderbar. Übergebe ich "DrawText" allerdings die richtige # "load_fahne" für die "Fahne", wird nichts geschrieben. Übergebe ich "0", wird der Text geschrieben, bleibt aber nach der Neupositionierung des Bildes "Fahne" auf dem Bildschirm, was er nicht soll. Übergebe ich etwa eine "1", gibt es einen Fehler.
Wieso schreibt DrawText nicht auf das Bild "Fahne", wenn "load_fahne" übergeben wird?
Code: Alles auswählen
scroll = ScrollAreaGadget(#PB_Any, 0, 0, B_breite, B_hoehe, breite, hoehe,200)
imagenr = Val(StringField(imagenr_memory$,1,"/"))
img = ImageGadget(#PB_Any, 0, 0, Breite, Hoehe,imageNr)
load_kompass = LoadImage(#PB_Any,"Kompass3.png")
imageNr1 = ImageID(load_kompass)
kompass = ImageGadget(#PB_Any,50,200,300,300,imageNr1)
;Um das hier geht es:
load_fahne= LoadImage(#PB_Any,"Fahne.png")
imageNr2 = ImageID(load_fahne)
fahne = ImageGadget(#PB_Any,50+130,200+120,152,86,imageNr2)
Repeat
event = WaitWindowEvent()
If EventWindow() = window
If event = #PB_Event_Gadget
If EventGadget() = scroll
x_scroll = GetGadgetAttribute(scroll, #PB_ScrollArea_X)
y_scroll = GetGadgetAttribute(scroll, #PB_ScrollArea_Y)
ElseIf EventGadget() = img ;<= imagegadget innerhalb eines scrollareagadgets im Window
If EventType() = #PB_EventType_LeftClick
;
;
ElseIf EventType() = #PB_EventType_RightClick
Debug "RechtsClick"
;
;
;Bild "Fahne" = transparent und wird verschoben; damit Hintergrund aktualisiert wird,
;"verstecken" und "neuzeichnen mit Hide(1)/resize/hide(0)
HideGadget(fahne,1)
ResizeGadget(fahne,maus_x+137,maus_y+73,#PB_Ignore, #PB_Ignore)
HideGadget(fahne,0)
;
;
Font = LoadFont(#PB_Any, "Verdana" ,12.5, #PB_Font_Bold)
; Hier nun liegt der Haase:
ergebnis = StartDrawing(ImageOutput(load_fahne)) ;<=== Schreibt nichts!
DrawingMode(#PB_2DDrawing_Transparent)
Debug "StartDrawing" + Str(ergebnis)
DrawingFont(FontID(font))
Ergebnis = DrawText(maus_x+141 + 33,maus_y+80,distanz$ + " Km", $1324FF)
Debug "DrawText: " + Str(ergebnis)
StopDrawing()
; Da wird nicht auf das Bild "Fahne" geschrieben: nehme ich bei "StartDrawing" statt
; load_fahne" eine "0" klappet es (aber nur mit null) - dann bleibt der Text aber stehen,
; wenn Bild "Fahne" verschobe wird.
; StartDrawing und "Drawtext" geben Ergebnisse
EndIf
EndIf
Until event = #PB_Event_CloseWindow
Klappt alles im Prinzip auch wunderbar. Übergebe ich "DrawText" allerdings die richtige # "load_fahne" für die "Fahne", wird nichts geschrieben. Übergebe ich "0", wird der Text geschrieben, bleibt aber nach der Neupositionierung des Bildes "Fahne" auf dem Bildschirm, was er nicht soll. Übergebe ich etwa eine "1", gibt es einen Fehler.
Wieso schreibt DrawText nicht auf das Bild "Fahne", wenn "load_fahne" übergeben wird?