Seite 1 von 1

Stringgadget #PB_Text_Right anwenden

Verfasst: 30.01.2017 18:01
von stevie1401
Kann ich in einem Stringgadget den Text rechtsbündig anzeigen lassen wie bei einem Textgadget? (#PB_Text_Right)

Re: Stringgadget #PB_Text_Right anwenden

Verfasst: 30.01.2017 18:23
von RSBasic

Code: Alles auswählen

EnableExplicit

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  StringGadget(1, 10, 10, 480, 20, "Hallo stevie1401", #ES_RIGHT)
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf
(nur für Windows)

Re: Stringgadget #PB_Text_Right anwenden

Verfasst: 30.01.2017 19:30
von ts-soft

Code: Alles auswählen

EnableExplicit

ImportC ""
  gtk_entry_set_alignment(*entry.GtkEntry, xalign.f)
EndImport

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  StringGadget(1, 10, 10, 480, 20, "Hallo stevie1401")
  gtk_entry_set_alignment(GadgetID(1), 1.0)
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf 
(nur für Linux)

Re: Stringgadget #PB_Text_Right anwenden

Verfasst: 30.01.2017 23:40
von Sicro

Re: Stringgadget #PB_Text_Right anwenden

Verfasst: 31.01.2017 01:35
von Bisonte
Und nu nochmal für alle :mrgreen:

Code: Alles auswählen

#NSRightTextAlignment = 1

CompilerIf #PB_Compiler_OS = #PB_OS_Linux
  ImportC ""
    gtk_entry_set_alignment(*entry.GtkEntry, xalign.f)
  EndImport
CompilerEndIf

Procedure RStringGadget(Gadget, x, y, Width, Height, Content$, Flags = 0)
  
  Protected ID = #False
  
  CompilerSelect #PB_Compiler_OS
    CompilerCase #PB_OS_Windows
      ID = StringGadget(Gadget, x, y, Width, Height, Content$, Flags|#ES_RIGHT)
    CompilerCase #PB_OS_Linux
      ID = StringGadget(Gadget, x, y, Width, Height, Content$, Flags)
      If Gadget = #PB_Any : Gadget = ID : EndIf
      gtk_entry_set_alignment(GadgetID(Gadget), 1.0)
    CompilerCase #PB_OS_MacOS
      ID = StringGadget(Gadget, x, y, Width, Height, Content$, Flags)
      If Gadget = #PB_Any : Gadget = ID : EndIf
      CocoaMessage(0,GadgetID(Gadget),"setAlignment:", #NSRightTextAlignment)
  CompilerEndSelect
  
  ProcedureReturn ID
  
EndProcedure

Re: Stringgadget #PB_Text_Right anwenden

Verfasst: 31.01.2017 09:20
von Shardik
Bisonte hat geschrieben:Und nu nochmal für alle :mrgreen:
Ist ein alter Hut... Das hatte ich als Multiplattform-Lösung schon 2013 gezeigt... :wink:

Wer Multiplattform API-Lösungen sucht, sollte immer zuerst einmal hier schauen.

Re: Stringgadget #PB_Text_Right anwenden

Verfasst: 31.01.2017 10:30
von stevie1401
Erst einmal vielen Dank an alle!
Unter Linux (Ubuntu (Mint)) bekomme ich allerdings eine Fehlermeldung und es funktoniert nicht:
[09:26:29] [WARNING] Gtk (CRITICAL): gtk_entry_set_alignment: assertion 'GTK_IS_ENTRY (entry)' failed

Re: Stringgadget #PB_Text_Right anwenden

Verfasst: 31.01.2017 11:57
von ts-soft
stevie1401 hat geschrieben:Unter Linux (Ubuntu (Mint)) bekomme ich allerdings eine Fehlermeldung und es funktoniert nicht: [09:26:29] [WARNING] Gtk (CRITICAL): gtk_entry_set_alignment: assertion 'GTK_IS_ENTRY (entry)' failed
Gerade unter Linux Mint (18.1) x64, läuft einwandfrei mit GTK2 oder GTK3. Auch alle anderen Distris scheinen zu funzen, fehler liegt also bei Dir!

PB5.44 und PB5.60b1

Re: Stringgadget #PB_Text_Right anwenden

Verfasst: 31.01.2017 12:24
von stevie1401
Das mag ja sein, diese Erkenntnis nützt mir erst einmal allerdings nichts.
Was bedeutet denn die Fehlermeldung?

Hab den Code 1 zu 1 übernommen, funktioniert aber nicht.

EDIT: Fehler gefunden. Ich habe die ID übergeben und nicht die GadgetId(gadget).
Lesen hilft wirklich!

Noch einmal danke an alle!

Re: Stringgadget #PB_Text_Right anwenden

Verfasst: 31.01.2017 14:35
von xXRobo_CubeXx
Shardik hat geschrieben:Wer Multiplattform API-Lösungen sucht, sollte immer zuerst einmal hier schauen.
Hey :)

Kannst du das auch hier ein Thread erstellen und anpinnen ? :) :) :)

Das wäre voll klasse und unentberlich :!: Bild

Danke :)