Seite 2 von 2

Verfasst: 20.05.2007 15:51
von Andreas_S
also der ":" wirkt wie ein Zeilenumbruch. und refreshen desswegen weil sich das window sonst aufhengt oder nicht mehr reagiert. Ich kanns auch nicht gut erklären.

Verfasst: 20.05.2007 15:51
von Kiffi
Dark Skillu hat geschrieben:Danke :oops: Aber was ist mit dem refreshen?
schieb mal das Fenster teilweise aus dem sichtbaren Bereich heraus und zieh
es danach wieder rein (oder verdeck mit einem anderen Fenster einen
Teilbereich Deines Fensters). Du wirst sehen, dass die Linien nicht neu
gezeichnet werden und der überdeckte Bereich wieder die
Standard-Fensterhintergrundfarbe angenommen hat. Du musst also dafür
Sorge tragen, dass der Refresh der Linien von Dir übernommen wird.

Grüße ... Kiffi

Verfasst: 20.05.2007 15:57
von Dark Skillu
Ich hab den Code fürn Farbverlauf in die Schleife gepackt und Problem ist eigtl. behoben abgesehen, dass man den Refresh mit nachvollziehen kann :cry: Kann man aber mit leben.

Verfasst: 20.05.2007 16:08
von Dark Skillu
Kann ich den Farbverlauf auch irgendwie für Gadgets benutzen?

Verfasst: 20.05.2007 16:15
von Andreas_S
klar :wink:

PS. wennst die Procedure noch brauchst ich kann sie gleich posten ...

Verfasst: 20.05.2007 17:20
von Andreas_S
Habs nochmal proggen müssen, hier:

Code: Alles auswählen

Procedure ColorWall_(x,y,w,h,RGB1,RGB2)
 R=Red(RGB2)-Red(RGB1)
 StepR.d=R/h

 G=Green(RGB2)-Green(RGB1)
 StepG.d=G/h

 B=Blue(RGB2)-Blue(RGB1)
 StepB.d=B/h

 Red.d=Red(RGB1)
 Green.d=Green(RGB1)
 Blue.d=Blue(RGB1)
  For k=0 To h-1
   Red+StepR
   Green+StepG
   Blue+StepB
   RGB=RGB(Red,Green,Blue)
   Line(x,y+k,w,0,RGB)
  Next
 Debug RGB
EndProcedure


OpenWindow(0,0,0,500,500,"Test",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)

StartDrawing(WindowOutput(0))
 ColorWall_(10,10,480,480,RGB(255,0,0),RGB(0,0,255))
StopDrawing()

Repeat : Until WindowEvent()=#WM_CLOSE
RGB1: obere Farbe
RGB2: untere Farbe

Ich hoffe das bringt dir was.

Verfasst: 20.05.2007 17:54
von mk-soft
Habs mal umgeschrieben und erst auf ein Image gezeichnet.

Refreshen übernimmt dann Windows :allright:

Code: Alles auswählen

Procedure ColorWall_(x,y,w,h,RGB1,RGB2)
 R=Red(RGB2)-Red(RGB1)
 StepR.d=R/h

 G=Green(RGB2)-Green(RGB1)
 StepG.d=G/h

 B=Blue(RGB2)-Blue(RGB1)
 StepB.d=B/h

 Red.d=Red(RGB1)
 Green.d=Green(RGB1)
 Blue.d=Blue(RGB1)
  For k=0 To h-1
   Red+StepR
   Green+StepG
   Blue+StepB
   RGB=RGB(Red,Green,Blue)
   Line(x,y+k,w,0,RGB)
  Next
 Debug RGB
EndProcedure

#Wall = 0

; Image erzeugen
CreateImage(#Wall, 480, 480)
; Auf Image zeichnen
StartDrawing(ImageOutput(#Wall))
  ColorWall_(0,0,480,480,RGB(255,0,0),RGB(0,0,255))
StopDrawing()


OpenWindow(0,0,0,500,500,"Test",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)

  If CreateGadgetList(WindowID(0))
    ImageGadget(0, 10,10,480,480, ImageID(#Wall))
  EndIf

Repeat : Until WindowEvent()=#WM_CLOSE