| |
|
|
| Hallo, Ist die Länge von Itemtexten eigentlich von Windows auf 255 beschränkt oder kann man da was dran drehen? So stößt man doch schnell an Grenzen. B. t. w.: Wenn man mehr als 255 Zeichen in eine Zeile setzen will, ist das Letzte Zeichen immer 0. Ist das Absicht? Gruß Jörg |
|
|
| |
|
|
|
| Hi,
> Ist die Länge von Itemtexten eigentlich von Windows auf 255 > beschränkt oder kann man da was dran drehen?
Nein, das ist eine Listview.dll Beschränkung.
> So stößt man doch schnell an Grenzen.
Ich finde es mehr als ausreichend. 255 Zeichen sind soviel, das selbst in einem grossen Fenster eine Spalte nicht ohne Scrollen den ganzen Text aufnehmen kann. Ein höherer Werte würde die Arbeit mit Listviews, gerade im Hinblick auf die Sortierung, erheblich verlangsamen.
> B. t. w.: Wenn man mehr als 255 Zeichen in eine Zeile > setzen will, ist das > Letzte Zeichen immer 0.
Mit welchem Befehl setzt du den Text denn ?
> Ist das Absicht?
Nein, es soll der Wert 0 gesetzt werden, nicht die Zahl 0... Ist wohl ein Fehler von mir.
Gruß, Frank |
|
|
| |
|
|
|
| Hallo, Könntest Du nicht ein Flag einführen, das es ermöglicht, die maximale Textlänge zu erhöhen? Welche Länge ist denn theoretisch möglich? Gruß Jörg |
|
|
| |
|
|
|
| Hi,
ich werd mal prüfen, ob das überhaupt möglich ist... Diese Grenze zieht sich wie ein roter Faden durch die ganze Dll. Versprechen kann ich gar nichts.
> B. t. w.: Wenn man mehr als 255 Zeichen in eine Zeile > setzen will, ist das > Letzte Zeichen immer 0.
Mit welchem Befehl setzt du den Text denn ?
Gruß, Frank |
|
|
| |
|
|
|
| Hallo, Mit dieser Zeile habe ichs getestet: zeile$=MkStr$(a,257) Zeile1$=Format$(00000,ZNr%) SetItem LV_Code&,Zeile1$,Zeile$
Gruß Jörg |
|
|
| |
|
|
|
| Hallo Jörg,
da du die Prozedure SetItem benutzt, werden nur die ersten 100 Bytes/Zeichen sicher übergeben (!):
Proc SetItem Clear clv2# Clear clvall# String clvall#,0=@$(2) Long clv2#,0=clvall# String clvall#,100=@$(3) Long clv2#,4=clvall#+100 String clvall#,200=@$(4) Long clv2#,8=clvall#+200 String clvall#,300=@$(5) Long clv2#,12=clvall#+300 String clvall#,400=@$(6) Long clv2#,16=clvall#+400 String clvall#,500=@$(7) Long clv2#,20=clvall#+500 String clvall#,600=@$(8) Long clv2#,24=clvall#+600 String clvall#,700=@$(9) Long clv2#,28=clvall#+700 String clvall#,800=@$(10) Long clv2#,32=clvall#+800 String clvall#,900=@$(11) Long clv2#,36=clvall#+900 String clvall#,1000=@$(12) Long clv2#,40=clvall#+1000 String clvall#,1100=@$(13) Long clv2#,44=clvall#+1100 String clvall#,1200=@$(14) Long clv2#,48=clvall#+1200 String clvall#,1300=@$(15) Long clv2#,52=clvall#+1300 SItem(@&(1),clv2#,Sub(%pcount,2)) EndProc
Um mehr zu übergeben, müßte die Prozedure abgeändert werden. Oder du benutzt die Funktion SItem(), die tatsächlich 256 übergeben kann. Warscheinlich hast du bisher nur immer 100 Zeichen übergeben können. Du wirst sehen, das wenn du 256 Zeichen benutzen kannst, es mehr als ausreichend sein dürfte.
Eine Umstellung dürfte ziemlich aufwendig sein, soviel steht jetzt schon fest.
Gruß, Frank |
|
|
| |
|
|