Seite 1 von 2

stringliste fenster

Verfasst: 18.10.2006 18:57
von TomTom
Hallo @ all!

Ich habe ein Problem...

Ich habe ein Fenster 600x600 und möchte ein paar Strings untereinander anzeigen lassen (der String heißt text.s(1000) ) ich finde das richtige Gadget nicht. TextGadget() ist fast richtig, hat aber noch ein Problem. ich möchte eine Liste untereinander anzeigen lassen. Außerdem ist bei TextGadget() das so. Wenn ich einen Text schreibe, der über den Rand hinaus geht, dann blendet der den einfach aus anstatt ihn eine Zeile tiefer zu setzen.

Gibt es noch ein Gadget um das hinzubiegen?

THX!!

Verfasst: 18.10.2006 19:13
von TomTom
Hat sich erledigt! Habe den perfekten Befehl gefunden. Habe es mit EditorGadget() gelöst ^^

Verfasst: 18.10.2006 19:17
von TomTom
Achja ein Problem gibt es da noch :( wenn ich neuen Text hinzuschreibe und es unterhalb des Gebietes ist, dann geht die Scrollbar nicht mit, also die Scrollbar soll immer auf den neusten Stand sein

Verfasst: 18.10.2006 19:28
von Frogger
Wenn du das Editorgadget mit Text füllst, musst du immer danach diese Procedure aufrufen.

Code: Alles auswählen

;Gadget.l ist die Nummer des EditorGadgets
Procedure EditorGadgetLocate(Gadget.l)
  y=CountGadgetItems(Gadget)
  x=1  
  REG = GadgetID(Gadget) 
  CharIdx = SendMessage_(REG,#EM_LINEINDEX,y-1,0) 
  LLength = SendMessage_(REG,#EM_LINELENGTH,CharIdx,0) 
  If LLength >= x-1 
    CharIdx + x-1 
  EndIf 
  Range.CHARRANGE 
  Range\cpMin = CharIdx 
  Range\cpMax = CharIdx 
  SendMessage_(REG,#EM_EXSETSEL,0,Range) 
EndProcedure

Verfasst: 18.10.2006 19:28
von ts-soft
Versuchs mal hiermit:

Code: Alles auswählen

SendMessage_(GadgetID(#EDITOR)l, #EM_LINESCROLL, #Null, number)

Verfasst: 18.10.2006 19:37
von TomTom
was muss ich denn für #EM_LINESCROLL und #Null und number eingeben?

Verfasst: 18.10.2006 19:45
von ts-soft
TomTom hat geschrieben:was muss ich denn für #EM_LINESCROLL und #Null und number eingeben?
In PB4 sind die alle deklartiert. #NULL hat den Wert 0, #EM_LINESCROLL ist
182. number sollte die nummer der letzten Zeile sein, was Du mit
CountGadgetItems(#EDITOR) ermitteln kannst

Verfasst: 18.10.2006 19:51
von Frogger
Im Prinzip macht meine Procedure genau das.
Nur mit dem Unterschied, dass du nur die Gadgenummer übergeben musst.

Falls du es nicht weist. Aufgerufen wird es so:

Code: Alles auswählen

EditorGadgetLocate(#EDITOR)

Verfasst: 18.10.2006 19:52
von TomTom
Hmm also es geht nicht, was mache ich falsch?

Code: Alles auswählen

      neu$ = neu$+ Chr(13) + string$
      SetGadgetText(2, neu$ ) 
      nummer =CountGadgetItems(2)
      SendMessage_(2, #EM_LINESCROLL, #Null, number)

Zu erwähnen ist, neu$ ist der ganze Text und string$ ist das hinzugefügte Teilchen

Verfasst: 18.10.2006 19:55
von Frogger

Code: Alles auswählen

      neu$ = neu$+ Chr(13) + string$
      SetGadgetText(2, neu$ )
      number =CountGadgetItems(2)
      SendMessage_(GadgetID(2), #EM_LINESCROLL, #Null, number)
Sagt mal, sind meine Posts unsichtbar? :roll: