Wieso gibt es kein ButtonImageGadget mit Text?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

war ja auch meine :D .. siehe oben
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

[gelöscht]
Zuletzt geändert von AND51 am 12.07.2006 16:12, insgesamt 1-mal geändert.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Du nervst :evil:
Hab ich doch oben schon widerlegt. 3 Zeilen sind nicht aufwändig
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

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
...
Elegant gelöst, wenn nur nicht dieser hässliche Font-Hintergrund den Farbverlauf zerstören würde.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
PBZecke
Beiträge: 399
Registriert: 02.09.2004 17:34

Beitrag von PBZecke »

DrawingMode(#PB_2DDrawing_Transparent)
Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... :lol:
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

PBZecke hat geschrieben:DrawingMode(#PB_2DDrawing_Transparent)
Das wars... :allright:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
Frogger
Beiträge: 425
Registriert: 14.03.2006 19:27
Kontaktdaten:

Beitrag von Frogger »

Und wer zu faul ist das selber in eine Prozedur zu packen...

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
sorry aber mir war langweilig :freak:


[EDIT]

Nochmal etwas erweitert. Jetzt kann man die Hintergrundfarbe bestimmen.

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
nochmal erweitert durch eine FontAuswahl bobobo

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
--------------
ich hab's nochmal etwas erweitert durch 'ne PositionsAngabe
bobobo (auch mit Langeweile)
[PB4.20]
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

@Delle
darf man fragen wofür? vielleicht ne art color-picker?
my pb stuff..
Bild..jedenfalls war das mal so.
Antworten