Seite 1 von 2

ButtonGadget - den Text nicht zentriert sondern "top&qu

Verfasst: 19.10.2005 13:43
von hiltwin
Funktioniert das, und wenn wie?

(Also, dass der Text im Button so angezeigt wird, als wäre es ein Textgadget, sprich linksbündig und oben und nicht in der Mitte zentriert)

Hab leider mit Ausprobieren und nachlesen nix dazu gefunden ...

Vielen Dank - freundlicher Gruss

Hiltwin

Verfasst: 19.10.2005 13:49
von AND51
Die einzige Möglichkeit, die mir spontan einfällt, ist die, dass du den anzuzeigenden Text via TextGadget manuell auf dem Button positionierst.
Oder manuell mit Hilfe von StartDrawing() und StopDrawing().

Verfasst: 19.10.2005 14:03
von ts-soft
Also linksbündig sollte mit #BS_LEFT gehen oder #BS_LEFT | #BS_TOP

Verfasst: 19.10.2005 14:07
von Kiffi
der Vollständigkeit halber:

Code: Alles auswählen

#BS_LEFT         =    $00000100
#BS_RIGHT        =    $00000200
#BS_TOP          =    $00000400
#BS_BOTTOM       =    $00000800 
Grüße ... Kiffi

Verfasst: 19.10.2005 14:48
von hiltwin
@ TS und Kiffi:

bezieht sich das auf das von AND51 vorgeschlagene Textgadget?
Wenn ichs nämlich dem Button zuordne, bekomm ich als Fehlermeldung "Constant not found: #BS_LEFT "

@AND51

Ist eine Idee - mal sehen, wie das klappt. Hauptsache, der Button lässt sich noch drücken ...

Danke für Eure Hilfe ...

Verfasst: 19.10.2005 14:56
von FGK
@hiltwin

du kannst ja die Konstanten von Kiffi in dein Prog einbauen dann
mault der Compiler auch nicht mehr. Owohl eigentlich diese Konstanten
alle schon vordefiniert sein sollten.

Gruß

FGK

Beispielcode:

Code: Alles auswählen


#BS_LEFT         =    $00000100 
#BS_RIGHT        =    $00000200 
#BS_TOP          =    $00000400 
#BS_BOTTOM       =    $00000800

If OpenWindow(0, 100, 200, 640,480,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_WindowCentered , "PureBasic Window")
  CreateGadgetList(WindowID())
  l=100:h=40
  x=WindowWidth()/2-(l/2):y=WindowHeight()/2-(h/2)
  ButtonGadget(0,x,y,l,h,"NORMAL")
  ButtonGadget(1,x-l-20,y,l,h,"LEFT",#BS_LEFT)
  ButtonGadget(2,x+l+20,y,l,h,"RIGHT",#BS_RIGHT)
  ButtonGadget(3,x,y-h-20,l,h,"TOP",#BS_TOP)
  ButtonGadget(4,x,y+h+20,l,h,"BOTTOM",#BS_BOTTOM)
  ButtonGadget(5,x-l-20,y-h-20,l,h,"TOP LEFT",#BS_LEFT|#BS_TOP)
  ButtonGadget(6,x+l+20,y-h-20,l,h,"TOP RIGHT",#BS_RIGHT|#BS_TOP)
  ButtonGadget(7,x-l-20,y+h+20,l,h,"BOTTOM LEFT",#BS_BOTTOM|#BS_LEFT)
  ButtonGadget(8,x+l+20,y+h+20,l,h,"BOTTOM RIGHT",#BS_BOTTOM|#BS_RIGHT)
  Repeat 
    EventID.l = WaitWindowEvent() 
    Select EventID
      Case #PB_Event_Gadget 
        Select EventGadgetID() 
          ;Case GadgetID
        EndSelect
      Case  #PB_Event_CloseWindow 
        Quit = 1 
    EndSelect 
  Until Quit = 1 
EndIf

End 

Verfasst: 19.10.2005 14:56
von nco2k
@hiltwin
klappt doch:

Code: Alles auswählen

#BS_LEFT= $00000100
#BS_RIGHT = $00000200
#BS_TOP = $00000400
#BS_BOTTOM = $00000800

If OpenWindow(0, 0, 0, 200, 100,  #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "test")
  
  If CreateGadgetList(WindowID(0))
    ButtonGadget(0, 25, 25, 150, 50, "Text", #BS_LEFT | #BS_TOP)
    
    Repeat
      WinEvent.l = WaitWindowEvent()
    Until WinEvent = #PB_Event_CloseWindow
    
  EndIf
  
EndIf

End
c ya,
nco2k

Verfasst: 19.10.2005 14:58
von AND51
Hauptsache, der Button lässt sich noch drücken ...
Stimmt, mit nem Textgadget könnts Probleme geben. Versuchs eher mal mit Startdrawing...

Ahhhhhhhhhhhhhhhhhh, jetzt habe ich nonne Idee!!!!
Mach doch ein Bild in den Knopf, das geht mit ButtonImaGeadget(), so heißt das glaub ich.
Das bild wird dann zum Beispie 100x100 Pixel groß, und dein Text steht in der oberen Linken Ecke.
Weißt du was ich meine? Wie wärs damit?

Verfasst: 19.10.2005 15:06
von Kiffi
> bezieht sich das auf das von AND51 vorgeschlagene Textgadget?

nein, es bezieht sich auf Deine Frage.

> Wenn ichs nämlich dem Button zuordne, bekomm ich als Fehlermeldung
> "Constant not found: #BS_LEFT "

tja, dazu sage ich jetzt mal nichts...

Grüße ... Kiffi

Verfasst: 19.10.2005 15:09
von ts-soft
Die Konstanten sind ja tatsächlich nicht definiert :freak:
Jede unwichtige Konstante ist definiert, aber solche Standardsachen nicht :shock: