Aloha,
hat einer von Euch eine Idee wieso unter Windows7 ein @CRLF bei _GUICtrlListView_SetItem angezeigt wird und bei WinXP der Zeilenumbruch ignoriert wird ?
Listview und @CRLF...Win7=Ja WinXp=Nein
-
- [ offen ]
-
JaneDoe -
10. Oktober 2012 um 20:55 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
Das dürfte ein Fehler in Win7 sein. Ein Zeilenumbruch hat in einem ListviewItem nunmal überhaupt nix zu suchen.
-
- Offizieller Beitrag
Hast Du mal ein Beispiel, wo das so sein soll?
Bei mir (Win7, 64 Bit) wird kein Zeilenumbruch angezeigt. -
Aha Danke, ein Fehler in Win7 also...zumindest ein optisch schicker.
Wieso hat das da nichts zu suchen ?
Sind doch viele Beiträge gerade hier im Forum von Usern die das gerne nutzen würden.
Halt schon Praktischer wenn man den Text der Zeile komplett sieht und nicht "text bla..."
Nicht jeder Benutzer möchte die Zeilengröße ändern, ein Tooltip nutzen oder noch extra Felder anlegen in denen dann die selektierten Infos angezeigt werden.
Oscar :
so schaut es in Betrieb aus (Win7 - 64bit)
[Blockierte Grafik: http://i46.tinypic.com/dw6fco.jpg]So Listview erstellt:
[autoit]$ListView1 = GUICtrlCreateListView("Titel|Preis|Ort|Datum", 18, 27, 718, 590, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
[/autoit]
_GUICtrlListView_SetExtendedListViewStyle($ListView1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_DOUBLEBUFFER))
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 396)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 80)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 130)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 90)
GUISetState()
;dann mit_GUICtrlListView_AddItem($ListView1, $RssArray[$i][0],$i);und subitems...$TDate = $splittime[5] & " Uhr" & @CRLF & $TDay & @CRLF & $splittime[2] & "." & $TMonth & "." & $splittime[4]
_GUICtrlListView_SetItem($ListView1, $TDate, $aktuellerindex, 3);dateIn WinXP dann halt ohne Zeilenumbruch.
-
PS:
Wollte den Beitrag nun nicht wieder Bearbeiten, da immer jede Menge Zeilenumbrüche unter Opera eingebaut werden.
Selbst wenn ich die im bearbeiten Modus lösche, sind sie nach dem Absenden wieder da.
Eventuell könnte man das noch am Forenscript verändern, Danke. -
- Offizieller Beitrag
Wieso hat das da nichts zu suchen ?
Weil das Listview-Control nicht für MultiLine-Darstellung gedacht ist. -
- Offizieller Beitrag
Das Verhalten dürfte auch darauf zurückzuführen sein, dass Win7 einen Zwangsumbruch bei zu langen Einträgen macht. Was aber auch nur passiert, wenn Du ein Bild mit entsprechender Größe eingefügt hast.
Erzwingen kann man den Umbruch nicht. Siehe hier:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Date.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>GUICreate("Test", 640, 120, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZE, $WS_MAXIMIZEBOX))
[/autoit]
GUISetState(@SW_SHOW)
$ListView1 = GUICtrlCreateListView("Titel|Preis|Ort|Datum", 18, 27, 718, 590, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
_GUICtrlListView_SetExtendedListViewStyle($ListView1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_DOUBLEBUFFER))
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 396)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 80)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 130)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 90)
GUICtrlCreateListViewItem('ewrifgerwjewrsi|64€|regjfrei|rgrekmlmer', $ListView1)
GUISetState()
_GUICtrlListView_SetItem($ListView1, _Now() & @CRLF & 'Test', 0, 3);date
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE -
Hm, kurios.
Hab das Beispiel von dir nun kurz an meines angepasst und es funktioniert wieder.
Selbst wenn kein Bild vorhanden ist, verändert er ja die Größe der Zeilen und dann klappt es auch wieder mit dem Umbruch.Schade das die Möglichkeit so eigentlich nicht vorhanden ist, ermöglicht doch ein Optisch ansprechendes Arbeiten.
Da kann ich ja mal froh sein Win7 zu nutzen

Beispiel:
Spoiler anzeigen
[autoit]#include
[/autoit] [autoit][/autoit] [autoit]#include
[/autoit] [autoit][/autoit] [autoit]#include
[/autoit] [autoit][/autoit] [autoit]#include
[/autoit] [autoit][/autoit] [autoit]#include
[/autoit] [autoit][/autoit] [autoit]#include
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICreate("Test", 640, 120, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZE, $WS_MAXIMIZEBOX))
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]$ListView1 = GUICtrlCreateListView("Titel|Preis|Ort|Datum", 18, 27, 718, 590, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
[/autoit] [autoit][/autoit] [autoit]_GUICtrlListView_SetExtendedListViewStyle($ListView1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_DOUBLEBUFFER))
[/autoit] [autoit][/autoit] [autoit]GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 396)
[/autoit] [autoit][/autoit] [autoit]GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 80)
[/autoit] [autoit][/autoit] [autoit]GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 130)
[/autoit] [autoit][/autoit] [autoit]GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 90)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$hImage = _GUIImageList_Create(64, 64)
[/autoit] [autoit][/autoit] [autoit]_GUIImageList_AddBitmap($hImage, @scriptdir & "egal.bmp")
[/autoit] [autoit][/autoit] [autoit]_GUICtrlListView_SetImageList($ListView1, $hImage, 1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$aktuellerindex = _GUICtrlListView_AddItem($ListView1, "Test",0)
[/autoit] [autoit][/autoit] [autoit]_GUICtrlListView_SetItem($ListView1, "test" & @CRLF & "test 2", $aktuellerindex, 1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]_GUICtrlListView_SetItem($ListView1, _Now() & @CRLF & 'Test', 0, 3);date
[/autoit] [autoit][/autoit] [autoit]Do
[/autoit] [autoit][/autoit] [autoit]Until GUIGetMsg() = $GUI_EVENT_CLOSE
[/autoit] [autoit][/autoit] [autoit][/autoit] -
- Offizieller Beitrag
Ok, wenn die Höhe der Zeile es zuläßt, dann wird der Zeilenumbruch beachtet. Das kann in manchen Situationen als Workaround hilfreich sein, aber wenn das erst ab Win7 (Vista?) funktioniert...
