| |
|
|
| Hallo Frank, Kann es sein, daß GetAllSelected nur auf von Hand selektierte Zeilen anspricht? Wenn ich mit MarkIfChecked bestimmte Zeilen selektiere, bekomme ich keine Daten in den Bereich. Apropos MarkIfChecked ... besser wäre SelectIfChecked und CheckIfSelected..., da dann eine einheitliche terminologie verwendet wird. Gruß Jörg |
|
|
| |
|
|
|
| Hi,
> Kann es sein, daß GetAllSelected nur auf von Hand > selektierte Zeilen anspricht? > Wenn ich mit MarkIfChecked bestimmte Zeilen selektiere, > bekomme ich keine Daten in den Bereich.
Wow, was ihr immer austestet... Das hab ich selber - glaube ich - nie getestet.
Im Grunde benutze ich ja nur eine Message, um Zeilen zu selektieren. Warum das Listview dort keine Markierungen meldet, obwohl sie ja sichtbar sind, ist mir schleierhaft. Probier doch mal die Message: SendMessage(listview&,4138,-1,0), nachdem du MarkIfChecked() angewendet hast.
Gruß, Frank |
|
|
| |
|
|
|
| Hallo Frank, Was soll man machen, wenn der Tag lang ist... Hier mal ein Beispiel dafür. Vielleicht fällt dir ja was dazu ein...
$I LISTVIEW_FUNKTIONEN.INC Cls Declare LV&,dll$,lvdll&,LVbereich#,Liste&,text$,anzahl& dll$=Listview.dll lvdll&=UseDLL(dll$) LV&=CreateListview(%hwnd,%hinstance,0,$FFFFFF,$FFFFFF,$25) WhileLoop 0,2 text$=Spalte + Str$(&Loop) InsertColumn LV&,text$,80,0 Wend AutoSortListview LV&,1,1,1
ShowListView(LV&,3,15,400,262)
SetItem LV&,Neues_Item 1,Neues_Item 2,Neues_Item 3 SetItem LV&,Neues_Item 1,Neues_Item 2,Neues_Item 3 SetItem LV&,Neues_Item 1,Neues_Item 2,Neues_Item 3
InitMessages(%hwnd) SelectLine(LV&,0,0) SelectLine(LV&,2,0) WaitInputwenn jetzt eine Zeile angeklickt wird gehts SendMessage(LV&,4138,-1,0) das war deine Empfehlung - bringt aber nichts. Welche Message ist das eigentlich anzahl&=GetNeededMemory(LV&,0) Dim LVbereich#,anzahl& print GetAllSelected(LVbereich#,Addr(Liste&))ist schon 0 obwohl Zeilen
selektiert sind print Mempos(LVbereich#,0,Chr$(0)) text$=String$(LVbereich#,0) SetItem LV&,text$ While 1 WaitInput Case %key=27:break Wend
EraseListview(LV&) Listviewstrukturen entfernen DestroyWindow(LV&) Profan Befehl, um Fensterobjekte zu zerstören CloseMessages(%hwnd) Subclassing des Parentfensters entfernen FreeDLL lvdll& Dispose LVbereich#
Gruß Jörg |
|
|
| |
|
|
|
| Hi,
GetAllSelected() ruft Daten ab, die innerhalb des Subclassings gesammelt werden. Vorraussetzung hierfür sind Ereignisse, wie Mausklicks usw. Um nicht das ganze Konzept umzukrempeln habe ich für SelectLine() ein neues Flag eingeführt (Flag 8), das du am besten beim letzten SelectLine() setzt, bevor GetAllSelected() aufrufst:
SelectLine(LV&,0,0) SelectLine(LV&,1,0) SelectLine(LV&,2,8)
GetAllSelected(LVbereich#,Addr(Liste&))
Jetzt werden alle selectierten Zeilen gefunden.
Wenn du mich per EMail kontaktest, schicke ich dir gerne die neue Betaversion rüber.
Gruß, Frank |
|
|
| |
|
|
|
| Hallo Frank, Funktioniert das denn auch mit MarkIfChecked? Das finde ich nämlich so klasse, daß mit einenm Rutsch alle Markiert werden können. Gruß Jörg |
|
|
| |
|
|
|
| Hi,
hab dir die Beta zugeschickt, sodas dus selber testen kannst.
Gruß, Frank |
|
|
| |
|
|