Seite 1 von 1

[Gelöst] Text aus StringGadget ect. lesen

Verfasst: 12.06.2015 05:11
von udg
Hallo,
Nun habe ich viel versucht, ausprobiert aber komme zu keinem Ergebnis.
Ich habe ein Formular mit StringGadget Feldern, die einfachen Text enthalten. Wenn diese Felder ausgefüllt sind möchte ich den Text-Inhalt mit dem aktivieren einer Checkbox aus den StringGadget's auslesen und alles in ein Editorgadget einfügen lassen sodass ich dann, dieses als Datei später speichern kann. Die Checkbox übernimmt also eine Schalter/Buttonfunktion.

Mein Ansatz:

Code: Alles auswählen

Select Event
  Case #PB_Event_Gadget
      Select EventGadget() 
         Case #CheckBox1
             If EventGadget()= #CheckBox1 
                GetGadgetText(#Gadget1)
                GetGadgetText(#Gadget2)
                GetGadgetText(#Gadget3)
                GetGadgetText(#Gadget4)
                .... ?
Damit lese ich meines Wissens die StringGadget Felder aus. Jedoch weis ich leider nicht wie ich nun weiter verfahren muss diese Inhalte in mein Ziel EditorGadget automatisch einfügen zu lassen.

Das Ziel EditorGadget: in meinem Fall: #Panel1

Mit "SendMessage_(GadgetID(#Panel1),#WM_PASTE,0,0)" funktioniert es nicht, da es in diesem Fall gerade das einfügt, was sich in der Zwischenablage befindet.
Felder die ich versuche auszulesen siehe CODE Schnipsel, werden nicht ausgelesen und mit SendMessage_ Befehl übergeben.

Wie muss ich an die Sache rangehen?

Danke Euch.

Re: Frage, text aus StringGadget lesen

Verfasst: 12.06.2015 05:45
von Pelagio
Guten Morgen udg,

das ist leichte mit PB Boardmitteln zu erreichen hierzu gibt es die Befehle AddGadgetItem.

Code: Alles auswählen

If OpenWindow(0, 0, 0, 322, 150, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   EditorGadget(0, 8, 8, 306, 133)

   For a = 0 To 10
     AddGadgetItem(0, a, "Zeile " + Str(a))
    Next
   Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
oder SetGadgetText

Code: Alles auswählen

If OpenWindow(0, 0, 0, 322, 150, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   EditorGadget(0, 8, 8, 306, 133)

   For a = 0 To 10
     pValue$ + Str(a) + #LF$
   Next
   SetGadgetText(0, pValue$)
   Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf 
genaueres kannst Du in der Hilfe unter EditGadget nachlesen.
Ich hoffe dies kann Dir weiterhelfen.

Re: Frage, text aus StringGadget lesen

Verfasst: 12.06.2015 11:09
von matbal
@udg

Ist das ein Ausschnitt aus deinem richtigen Code? Es fehlt nämlich eine Variable, der du das Ergebnis von GetGadgetText() zuweist.

Du kannst die zurückgegebenen Strings entweder mit Stringbefehlen zu einem großen String zusammenbauen (mit + zum Zusammenhängen und #CRLF$ für Zeilenumbrüche) und dann den ganzen Text mit einmal setzen.
Du kannst aber auch mit AddGadgetItemText() einzelne Zeilen im Editor hinzufügen.

Re: Frage, text aus StringGadget lesen

Verfasst: 12.06.2015 16:19
von udg
Danke euch beiden :allright:

Letzendlich habe ich es selber hinbekommen und so gelöst:

Auszug:

Code: Alles auswählen

Case #CheckBox1
         If EventGadget()= #CheckBox1 
            Eingabetext1$= GetGadgetText(0)
            Eingabetext2$= GetGadgetText(1)
            Eingabetext3$= GetGadgetText(2)
            Eingabetext4$= GetGadgetText(3)
            AddGadgetItem(#Panel1,0,Eingabetext1$+ #CRLF$ + Eingabetext2$+ #CRLF$ + Eingabetext3$+ #CRLF$ + Eingabetext4$,?CP850)
          EndIf
geht einwandfrei

@matbal
jap, Auszug aus dem Projekt wo Du mir schon sehr geholfen hast :praise: