stringliste fenster

Anfängerfragen zum Programmieren mit PureBasic.
TomTom
Beiträge: 130
Registriert: 18.10.2006 18:47

stringliste fenster

Beitrag 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!!
TomTom
Beiträge: 130
Registriert: 18.10.2006 18:47

Beitrag von TomTom »

Hat sich erledigt! Habe den perfekten Befehl gefunden. Habe es mit EditorGadget() gelöst ^^
TomTom
Beiträge: 130
Registriert: 18.10.2006 18:47

Beitrag 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
Benutzeravatar
Frogger
Beiträge: 425
Registriert: 14.03.2006 19:27
Kontaktdaten:

Beitrag 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
Zuletzt geändert von Frogger am 18.10.2006 19:28, insgesamt 1-mal geändert.
[PB4.20]
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 »

Versuchs mal hiermit:

Code: Alles auswählen

SendMessage_(GadgetID(#EDITOR)l, #EM_LINESCROLL, #Null, number)
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
TomTom
Beiträge: 130
Registriert: 18.10.2006 18:47

Beitrag von TomTom »

was muss ich denn für #EM_LINESCROLL und #Null und number eingeben?
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 »

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
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
Frogger
Beiträge: 425
Registriert: 14.03.2006 19:27
Kontaktdaten:

Beitrag 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)
[PB4.20]
TomTom
Beiträge: 130
Registriert: 18.10.2006 18:47

Beitrag 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
Benutzeravatar
Frogger
Beiträge: 425
Registriert: 14.03.2006 19:27
Kontaktdaten:

Beitrag 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:
[PB4.20]
Antworten