Verfasst: 12.07.2006 15:23
war ja auch meine
.. siehe oben

Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Elegant gelöst, wenn nur nicht dieser hässliche Font-Hintergrund den Farbverlauf zerstören würde.bobobo hat geschrieben:Aufwand ?Code: Alles auswählen
Enumeration #Window_0 #ButtonImage_0 #ButtonImage_1 #ButtonImage_2 EndEnumeration Image0 = CreateImage(0,160,40) Image1 = CreateImage(1,160,40) Image2 = CreateImage(2,160,40) ;Bilder erstellen ...
Das wars...PBZecke hat geschrieben:DrawingMode(#PB_2DDrawing_Transparent)
Code: Alles auswählen
Procedure CreateButtonImageGadget(Button.l, x.l, y.l, w.l, h.l, Textcolor.l, Text.s,Position.l)
CreateImage(Button.l,w,h)
StartDrawing(ImageOutput(Button))
For i=1 To w
Line(i,0,1,h,RGB(255-i,255-i,255-i))
Next i
DrawingMode(#PB_2DDrawing_Transparent)
FrontColor(Textcolor)
Select position
Case 0 ; links
bx=4;w/2-TextWidth(text)/2
by=h/2-TextHeight(text)/2
Case 1 ; zentriert
bx=w/2-TextWidth(text)/2
by=h/2-TextHeight(text)/2
Case 2 ;rechts
bx=w-TextWidth(text)-4
by=h/2-TextHeight(text)/2
EndSelect
DrawText(bx,by,Text)
StopDrawing()
ProcedureReturn ButtonImageGadget(Button, x, y, w, h, ImageID(Button))
EndProcedure
If OpenWindow(0, 325, 41, 260, 800, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(0))
For i=1 To 4
CreateButtonImageGadget(i, 50, 45*i, 160, 40, RGB(0,0,140), "Button "+Str(i),1) ;zentrierter Text
Next
For i=5 To 8
CreateButtonImageGadget(i, 50, 45*i, 160, 40, RGB(0,0,140), "Button "+Str(i),0) ;links Text
Next
For i=9 To 12
CreateButtonImageGadget(i, 50, 45*i, 160, 40, RGB(0,0,140), "Button "+Str(i),2) ;rechtsbündiger Text
Next
EndIf
EndIf
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Code: Alles auswählen
Procedure CreateButtonImageGadget(Button.l, x.l, y.l, w.l, h.l, BackColor.l, Textcolor.l, Text.s,Position.l)
CreateImage(Button.l,w,h)
StartDrawing(ImageOutput(Button))
For i=1 To w
r.f= Red (BackColor)/100*(i/w*100)
g.f= Green(BackColor)/100*(i/w*100)
b.f= Blue (BackColor)/100*(i/w*100)
Line(i,0,1,h,RGB(r,g,b))
Next i
DrawingMode(#PB_2DDrawing_Transparent)
FrontColor(Textcolor)
Select Position
Case 0 ; links
bx=4;w/2-TextWidth(text)/2
by=h/2-TextHeight(Text)/2
Case 1 ; zentriert
bx=w/2-TextWidth(Text)/2
by=h/2-TextHeight(Text)/2
Case 2 ;rechts
bx=w-TextWidth(Text)-4
by=h/2-TextHeight(Text)/2
EndSelect
DrawText(bx,by,Text)
StopDrawing()
ProcedureReturn ButtonImageGadget(Button, x, y, w, h, ImageID(Button))
EndProcedure
If OpenWindow(0, 325, 41, 260, 800, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(0))
For i=1 To 4
CreateButtonImageGadget(i, 50, 45*i, 160, 40, RGB(255,255,0), RGB(0,255,255), "Button "+Str(i),1) ;zentrierter Text
Next
For i=5 To 8
CreateButtonImageGadget(i, 50, 45*i, 160, 40, RGB(0,255,0), RGB(255,255,0), "Button "+Str(i),0) ;links Text
Next
For i=9 To 12
CreateButtonImageGadget(i, 50, 45*i, 160, 40, RGB(0,255,255), RGB(160,0,0), "Button "+Str(i),2) ;rechtsbündiger Text
Next
EndIf
EndIf
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Code: Alles auswählen
Procedure CreateButtonImageGadget(Button.l, x.l, y.l, w.l, h.l, BackColor.l, Textcolor.l, Text.s,Position.l,FontID.l)
CreateImage(Button.l,w,h)
StartDrawing(ImageOutput(Button))
For i=1 To w
r.f= Red (BackColor)/100*(i/w*100)
g.f= Green(BackColor)/100*(i/w*100)
b.f= Blue (BackColor)/100*(i/w*100)
Line(i,0,1,h,RGB(r,g,b))
Next i
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID(FontID))
FrontColor(Textcolor)
Select Position
Case 0 ; lonks
bx=4;w/2-TextWidth(text)/2
by=h/2-TextHeight(Text)/2
Case 1 ; zentriert
bx=w/2-TextWidth(Text)/2
by=h/2-TextHeight(Text)/2
Case 2 ;rechts
bx=w-TextWidth(Text)-4
by=h/2-TextHeight(Text)/2
EndSelect
DrawText(bx,by,Text)
StopDrawing()
ProcedureReturn ButtonImageGadget(Button, x, y, w, h, ImageID(Button))
EndProcedure
fontID= LoadFont(#PB_Any, "MS SANS SERIF", 8)
If OpenWindow(0, 325, 41, 260, 800, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(0))
For i=1 To 4
CreateButtonImageGadget(i, 50, 45*i, 160, 40, RGB(255,255,0), RGB(0,255,255), "Button "+Str(i),1,fontID) ;zentrierter Text
Next
For i=5 To 8
CreateButtonImageGadget(i, 50, 45*i, 160, 40, RGB(0,255,0), RGB(255,255,0), "Button "+Str(i),0,fontID) ;links Text
Next
For i=9 To 12
CreateButtonImageGadget(i, 50, 45*i, 160, 40, RGB(0,255,255), RGB(160,0,0), "Button "+Str(i),2,fontid) ;rechtsbündiger Text
Next
EndIf
EndIf
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow