Fragen zu StringGadget

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Fragen zu StringGadget

Beitrag von Joel »

Hallo,
Wenn ich ein String Gadget erzeuge und einen Text hinein schreibe wird der Text zwar geschrieben aber wenn die Zeile voll ist dann kann ich nicht mehr in die Zeile schreiben.

1. Wie schaffe ich es dass wenn ein Wort in einem StringGadget nicht mehr in eine Zeile passt das Wort in die nächste Zeile Rutschen zu lasse?
2. Wie lasse ich den Cursor wenn ich auf Enter drücke in die nächste Zeile Rutschen.

Hier im Antwortfeld sind die Funktionen ja auch eingebaut.
Zuletzt geändert von Joel am 02.01.2008 21:42, insgesamt 1-mal geändert.
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Code: Alles auswählen

StringGadget(Nummer,x,y,Breit,Hoch,"",#PB_String_Multiline|#WS_VSCROLL|#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

#PB_String_Multiline gibt es in der Version 4 nicht mehr. Alternativ
unter Windows #es_multiline. Aber nimm lieber gleich nen Editorgadget
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

lol dann hat

Code: Alles auswählen

#PB_String_Multiline = 4
StringGadget(Nummer,x,y,Breit,Hoch,"",#PB_String_Multiline|#WS_VSCROLL|#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT)
^^

jo stimmt das Editorgadget gibs ja jetzt ^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Ok, Danke für die Hilfe, Es Klappt!
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Ich habe noch eine Frage: Ich habe 3 StringGadget Felder und habe den Inhalt der Felder ermittelt. Dannach möchte ich die 3 Felder in einem StringGadget alle zusammen wieder ausgeben, aber so das jedes Feld in einer Zeile weiter unten ist.
Also Feld 1 ist später in Zeile 1
Feld 2 ist nachher in Zeile 2
Und bei Feld 3 soll der Text nachher in Zeile Nummer 4 sein.

Wie mach ich das?

Hier der Code damit ihr wisst was ich meine:

Code: Alles auswählen

If OpenWindow(0, 210, 0, 808, 609, "Test",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget )
    If CreateGadgetList(WindowID(0))
    #PB_String_Multiline = 4 
     StringGadget(0, 100, 50, 240, 30, "", #PB_String_Multiline|#WS_VSCROLL|#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT)
      StringGadget(80, 100, 10, 240, 30, "", #PB_String_Multiline|#WS_VSCROLL|#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT)
      ButtonGadget(22, 130, 530, 70, 50, "Ausgabe")
      StringGadget(3, 360, 10, 330, 25, "", #PB_String_Multiline|#WS_VSCROLL|#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT)
       Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
      Case 22
a$ = GetGadgetText(80)
b$ = GetGadgetText(3)
c$ = GetGadgetText(0)
#PB_String_Multiline = 4 
OpenWindow(1, 210, 0, 808, 609, "Presse-Tool",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget )
    If CreateGadgetList(WindowID(1))
 StringGadget(1, 1, 1, 808, 609, "", #PB_String_Multiline|#WS_VSCROLL|#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT)
    SetGadgetText(1, a$+b$+c$)
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
      EndSelect
    EndIf 
  Until EventID = #PB_Event_CloseWindow
EndIf
      EndSelect
    EndIf 
  Until EventID = #PB_Event_CloseWindow
EndIf
EndIf 
Habe es schon mit Chr(10) probiert aber da kommt dann nur ein komisches Quadratisches Zeichen statt die Nächste Zeile.
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Beitrag von PureLust »

Dazu musst Du einfach nur die Steuerzeichen für einen Wagenrücklauf und einen Zeilenumvorschub einfügen (Konstante: #CRLF$).
Also:

Code: Alles auswählen

    SetGadgetText(1, a$+#CRLF$+b$+#CRLF$+c$)
Gruß, PL.

[Edit:] @Thomas
Auch in einem EditorGadget muss er #CRLF$ verwenden um einen Zeilenumbruch zwischen 2 Strings zu erhalten.
Zuletzt geändert von PureLust am 30.12.2007 23:38, insgesamt 1-mal geändert.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Benutzeravatar
Thomas
Beiträge: 893
Registriert: 06.07.2006 19:24
Wohnort: Regensburg
Kontaktdaten:

Beitrag von Thomas »

Wieso verwendest du kein Editor-Gadget?
v6.00
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Hallo,

Ich habe noch eine Frage und habe den Titel mal in "Fragen zu Stringgadget" umgeändert.

Mein Programm rechnet zusammen welche Texte Ausgegeben werden und welche nicht.

Ich mach mal ein Beispiel:

Code: Alles auswählen

a$ = "test"
b$ = "test2+a$+test2"
c$ = test3+b$+test3"
StringGadget(1, "c$")
Wenn man dieses Programm ausführt wird in dem StringGadget() : "test3+b$+test3" Ausgegeben. Normal müsste aber: "test3test2testtest2test3" Ausgegeben werden.
Wie sage ich PB das es wenn ich b$ = a$ schreibe dass es dann a$ in "Test" übersetzt und nicht in a$ Übersetzt?

Ich muss in meinem Programm so viele Strings haben weil der Ausgabetext: 1000 verschiedene Kombinationsmöglichkeiten haben kann und den Text, Wort für Wort zusammensetzt, jenachdem was man vorher eingestellt hat.
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
marco2007
Beiträge: 906
Registriert: 26.10.2006 13:19
Kontaktdaten:

Beitrag von marco2007 »

Code: Alles auswählen

a$ = "test" 
b$ = "test2"+a$+"test2" 
c$ = "test3"+b$+"test3" 
setgadgettext(1, c$)
Zuletzt geändert von marco2007 am 02.01.2008 22:11, insgesamt 1-mal geändert.
Windows 11 - PB 6.03 x64
_________________________________
Antworten