Seite 1 von 1
Haben Editorgadgets irgendwelche Limits?
Verfasst: 24.09.2015 13:49
von Delle
Hallo,
ich lese eine ziemlich große Textdatei (15.000 Zeilen, je Zeile ein Wort) in PB rein.
Zuerst alles in eine Liste, danach werden die Wörter zeilenweise in einem EditorGadget ausgegeben.
Mit 15.000 Zeilen funktioniert das anscheinend problemlos, mit 20.000 aber kam es öfter man zu Abstürzen (Programm reagiert nicht mehr).
Gibt es also für das EG irgendein Limit was a) die Zeilenanzahl oder/und b) die Textlänge insgesamt angeht?
Danke,
Delle
Re: Haben Editorgadgets irgendwelche Limits?
Verfasst: 24.09.2015 13:58
von Bisonte
Darüber kann man wohl nur Fred ausfragen.
Allerdings wäre es in deinem Falle nicht sinnvoller, nur den Teil (+- 20 oder 30 Zeilen) darzustellen, der auch im Gadget sichtbar
wäre ? Dann würde sich das Problem nicht ergeben, und würde dann vermutlich auch nicht träge werden....
So als Hinweis SelectElement() etc....
Re: Haben Editorgadgets irgendwelche Limits?
Verfasst: 24.09.2015 14:06
von GPI
Das EditorGadget dürfte ein Rich Edit Control sein.
Google spuckte mir da unter anderen das aus:
http://blogs.msdn.com/b/oldnewthing/arc ... 50795.aspx
If you don't specify otherwise, the maximum number of characters in a rich edit control is 32,767 charaters. (This limit exists for compatibility with the original rich edit control.) You can raise the limit with the EM_EXLIMITTEXT message. Therefore, we need to slip the line
SendMessage(hwnd, EM_EXLIMITTEXT, 0, -1);
Also gut möglich dass sich da was aufhängt.
Re: Haben Editorgadgets irgendwelche Limits?
Verfasst: 24.09.2015 14:11
von RSBasic
Tritt das Problem bei dir immer auf oder nur ab und zu mal?
Kannst du mit folgendem Code ebenfalls nachstellen?
Code: Alles auswählen
EnableExplicit
Define a
Define Test$
For a=1 To 20000
Test$ + "Text " + Str(a) + Chr(13)
Next
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
EditorGadget(1, 0, 0, WindowWidth(0), WindowHeight(0))
SetGadgetText(1, Test$)
SetActiveGadget(1)
AddWindowTimer(0, 1, 10)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Timer
Select EventTimer()
Case 1
AddGadgetItem(1, -1, "Text " + Str(CountGadgetItems(1)))
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf
Ich ließ den Code im Hintergrund laufen und auch nach 40.000 konnte ich keine Probleme feststellen. Das Fenster reagierte stets.
Liegt es wirklich am EditorGadget oder liegt die Ursache vielleicht woanders? Konntest du mit einem kleinen Beispielcode nachstellen?
Re: Haben Editorgadgets irgendwelche Limits?
Verfasst: 24.09.2015 14:16
von ts-soft
Nach meinen Infos wurde das Limit bei EditorGadget (RichEdit) aufgehoben, wenn das nicht zwischendurch,
versehentlich?, geändert wurde. Also daran sollte es nicht liegen.