ButtonGadget - den Text nicht zentriert sondern "top&qu

Anfängerfragen zum Programmieren mit PureBasic.
hiltwin
Beiträge: 311
Registriert: 06.10.2005 11:08
Wohnort: D-31177 Harsum
Kontaktdaten:

ButtonGadget - den Text nicht zentriert sondern "top&qu

Beitrag 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
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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().
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Also linksbündig sollte mit #BS_LEFT gehen oder #BS_LEFT | #BS_TOP
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
hiltwin
Beiträge: 311
Registriert: 06.10.2005 11:08
Wohnort: D-31177 Harsum
Kontaktdaten:

Beitrag 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 ...
Benutzeravatar
FGK
Beiträge: 249
Registriert: 09.01.2005 14:02
Computerausstattung: i5-4430 CPU / 8GB RAM
GeForce GT630
Windows 10 Home / 64-bit
Wohnort: Augsburg

Beitrag 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 
Zuletzt geändert von FGK am 19.10.2005 15:10, insgesamt 1-mal geändert.
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag 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
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Die Konstanten sind ja tatsächlich nicht definiert :freak:
Jede unwichtige Konstante ist definiert, aber solche Standardsachen nicht :shock:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten