Hallo,
besteht die möglichkeit
"In einer Listview Makieren und kopieren ?"
Hallo,
besteht die möglichkeit
"In einer Listview Makieren und kopieren ?"
guck dir mal
[autoit]_GUICtrlListView_...
[/autoit]alle befehle durch, da ist fast alles dabei, ich poste gleich mal den gesuchten als edit...
Edit1:
z.B.
_GUICtrlListView_ClickItem
[/autoit]
wohin kopieren??
Hallo subzero007,
schau dir in folgendem Beispiel die beiden case Zweige $idClipmenu und $idAllClipmenu an:
#include <GUIConstantsEx.au3>
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <File.au3>
;#include <array.au3>
[/autoit] [autoit][/autoit] [autoit]Local $tZeit, $s1, $s2
[/autoit] [autoit][/autoit] [autoit]$main = GUICreate("Test Drag & Drop from LV1 to LV2 DblClick in LV1 with ContextMenu in LV1 (copies to ClipBoard", 600, 400)
$listview = GUICtrlCreateListView("Gruppe1| BlubText", 10, 10, 200, 100, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS), BitOR($LVS_EX_FULLROWSELECT, $WS_EX_CLIENTEDGE))
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_LV_ALTERNATE) ; legt fest, dass Hintergrundfarbe wechselt
GUICtrlSetBkColor(-1, 0xE6E6FA) ; Hintergrundfarbe 1
$listview2 = GUICtrlCreateListView("Gruppe2 | BlubText", 230, 10, 200, 100, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS), BitOR($LVS_EX_FULLROWSELECT, $WS_EX_CLIENTEDGE))
GUICtrlSetState($listview2, $GUI_DROPACCEPTED)
$hbtnInfo = GUICtrlCreateButton("Info", 10, 120, 100, 20)
$hbtnSave = GUICtrlCreateButton("&Speichern", 230, 120, 100, 20)
$hbtnLoad = GUICtrlCreateButton("&Laden", 230, 150, 100, 20)
For $i = 1 To 9
$listitem = GUICtrlCreateListViewItem("test" & $i & " |Blub " & Random(1, 9), $listview)
GUICtrlSetBkColor(-1, 0xcccccc) ; Hintergrundfarbe 2
Next
$idContextmenu = GUICtrlCreateContextMenu($listview)
$idClipmenu = GUICtrlCreateMenuItem("Selektierte ins ClipBoard", $idContextmenu)
$idAllClipmenu = GUICtrlCreateMenuItem("Alle aus Splate 2 ins ClipBoard", $idContextmenu)
$idDragmenu = GUICtrlCreateMenuItem("In LV 2", $idContextmenu)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ;<=========================================== Bemachrichtigung Doppelklick
GUISetState()
$first = True
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_DROPPED, $idDragmenu
$ar = _GUICtrlListView_GetSelectedIndices($listview, True)
;_ArrayDisplay($ar)
For $i = 1 To $ar[0]
$sItem = _GUICtrlListView_GetItemTextString($listview, $ar[$i])
GUICtrlCreateListViewItem($sItem, $listview2)
Next
Case $hbtnInfo
$Wert = _GUICtrlListView_GetItemTextArray($listview)
If $Wert[2] <> "" Then
MsgBox(0, "Eintrag für " & $Wert[1], "ist: " & $Wert[2])
Else
MsgBox(0, "", "Kein Eintrag ausgewählt")
EndIf
Case $hbtnSave
SaveLV(@ScriptDir & "\LV2.DAT")
Case $hbtnLoad
LoadLV(@ScriptDir & "\LV2.DAT")
Case $idClipmenu
$aItems = _GUICtrlListView_GetSelectedIndices($listview, True)
$sItemText = ""
For $i = 1 To $aItems[0]
;Schleifenbeginn 1 da $aItem[0] die Anzahl enhält
$sItemText &= _GUICtrlListView_GetItemTextString($listview, $aItems[$i]) & @CRLF
Next ;= > weiter mit For
ConsoleWrite($sItemText & @CRLF)
ClipPut($sItemText & @CRLF)
Case $idAllClipmenu
$sToClip = ""
For $i = 0 To _GUICtrlListView_GetItemCount($listview)
$aItem = _GUICtrlListView_GetItemTextArray($listview, $i)
$sToClip &= $aItem[2] & @CRLF
Next
ClipPut($sToClip)
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func SaveLV($sFile)
Local $hFileOut, $aItem
$hFileOut = FileOpen($sFile, 2)
For $j = 0 To _GUICtrlListView_GetItemCount($listview2) - 1
$aItem = _GUICtrlListView_GetItemTextString($listview2, $j)
FileWriteLine($hFileOut, $aItem)
Next
FileClose($hFileOut)
EndFunc ;==>SaveLV
Func LoadLV($sFile)
Local $aItems
If FileExists($sFile) Then
_FileReadToArray($sFile, $aItems)
If IsArray($aItems) Then
_GUICtrlListView_DeleteAllItems($listview2)
;_ArrayDisplay($aItems)
For $j = 1 To $aItems[0]
GUICtrlCreateListViewItem($aItems[$j], $listview2)
Next
EndIf
EndIf
EndFunc ;==>LoadLV
Func WM_NOTIFY($hWnd, $MsgID, $wParam, $lParam) ;<================== Benachrichtigung Doppelklick (Original from Chaoskeks [in ChaosExecution])
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return 0
$code = DllStructGetData($tagNMHDR, 3)
If $wParam = $listview Then
;ConsoleWrite($code & @CRLF)
Switch $code
Case -3
If _GUICtrlListView_GetSelectedCount($listview) > 0 Then
For $i = 0 To _GUICtrlListView_GetItemCount($listview)
If _GUICtrlListView_GetItemSelected($listview, $i) Then
$aItem = _GUICtrlListView_GetItemTextArray($listview, $i)
MsgBox(0, "Doppel-Klick auf ", $aItem[1] & @CRLF & @CRLF & $aItem[2])
EndIf
Next
EndIf
EndSwitch
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
mfg (Auto)Bert