stringliste fenster
stringliste fenster
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!!
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!!
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]
- 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
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- 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
In PB4 sind die alle deklartiert. #NULL hat den Wert 0, #EM_LINESCROLL istTomTom hat geschrieben:was muss ich denn für #EM_LINESCROLL und #Null und number eingeben?
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

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:
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]
Hmm also es geht nicht, was mache ich falsch?
Zu erwähnen ist, neu$ ist der ganze Text und string$ ist das hinzugefügte Teilchen
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
Code: Alles auswählen
neu$ = neu$+ Chr(13) + string$
SetGadgetText(2, neu$ )
number =CountGadgetItems(2)
SendMessage_(GadgetID(2), #EM_LINESCROLL, #Null, number)

[PB4.20]