Ich würde gerne für ein kleines Tool eine GUI in dem Stil wie auf dem Foto zu sehen ist programmieren.
Geht das mit AutoIT?
Gruß
kara2010
Ich würde gerne für ein kleines Tool eine GUI in dem Stil wie auf dem Foto zu sehen ist programmieren.
Geht das mit AutoIT?
Gruß
kara2010
Hallo kara2010,
herzlich willkommen im Forum und viel Spass mit AutoIt.
Hier kannst du dir die deutsche Hilfe herunterladen.
Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/Tutorial Sehr hilfreich ist auch das Buch von peethebee
und jetzt zu deiner Frage: hier ist ein kleines Beispiel wie man Icons in einer LV anzeigt:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_outfile=LV_ImageList.exe
#AutoIt3Wrapper_UseUpx=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#cs ------------------------------------------------------------------------------
AutoIt Version: 3.3.6.1
Author: AutoBert: http://www.autoit.de/index.php?page…7402#post187402
Skriptbeispiel für den Umgang mit GUICtrlCreateListView, _GUICtrlListView_AddColumn, _GUICtrlListView_AddItem,
_GUICtrlListView_AddSubItem, _GUICtrlListView_SetImageList, _GUIImageList_AddIcon, _GUIImageList_GetImageCount
#ce -------------------------------------------------------------------------------------------------------------------------
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#cs
[0]|10
[1]|c:\Dokumente und Einstellungen\Bert\Eigene Dateien\beetle.icl
[2]|c:\Dokumente und Einstellungen\Bert\Eigene Dateien\beetle3.icl
[3]|c:\Programme\AutoIt3\123\Lessons\IconSet.icl
[4]|c:\Programme\AutoIt3\Downloads\Eukalyptus\Recorder\Record.icl
[5]|c:\Programme\AutoIt3\Downloads\nuts\Icon-Prob\dll\Icons\IconLib.icl
[6]|c:\Programme\AutoIt3\Downloads\nuts\Icon-Prob\dll\Icons\Stop.icl
[7]|c:\Programme\AutoIt3\Downloads\nuts\Icon-Prob\dll\Icons\StopLib\Stop.icl
[8]|c:\Programme\AutoIt3\Downloads\Oscar\LoginBox\icons.icl
[9]|c:\Programme\AutoIt3\MyProjects\DB-ListView\Flaggs.icl
[10]|c:\Programme\AutoIt3\MyProjects\DB-ListView\Test.icl
compstui.dll|7 Licht aus|8 Licht ein|83 Telefon|95 Fax
cryptui.dll|
dot3ui.dll|1 Info
filemgmt.dll|1 Hinweis
msrating.dll.dll|10 OK(rund)11 abbrechen(rund)
mmcndmgr.dll|9 abbrechen|14 Uhr|44 Lupe
#ce
Opt('MustDeclareVars', 1)
Global $hGui, $listview, $hListview, $hImage, $b, $iCount,$iWidth = @DesktopWidth, $iHeight = @DesktopHeight -80
Global $Combo, $Progress, $Label,$aFile, $sDLLName, $Msg, $sTitel = "Icon-Übersicht "
Local $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES)
$hGui = GUICreate($sTitel & $sDLLName, $iWidth, $iHeight, 0, 0)
$Combo = GUICtrlCreateCombo("", 2, 2, 120)
$Progress = GUICtrlCreateProgress(125, 2, $iWidth -137,25)
;$Label = GUICtrlCreateLabel("TEST",330,2,200)
$aFile = _FileListToArray(@SystemDir, "*.DLL")
$listview = GUICtrlCreateListView("", 2, 42, $iWidth-4, $iHeight - 44, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
$hListview = ControlGetHandle($hGui, "", $listview)
_GUICtrlListView_SetExtendedListViewStyle($listview, $exStyles)
For $i = 1 To 8
; Fügt die Spalten hinzu
_GUICtrlListView_AddColumn($listview, "Spalte " & $i, 120)
Next
GUISetState()
For $i = 1 To $aFile[0]
If _LoadIcons($aFile[$i]) > 0 Then GUICtrlSetData($Combo, $aFile[$i])
GUICtrlSetData($Progress, 100- ($i / $aFile[0] * 100))
;GUICtrlSetData($Label,$i & " / " & $aFile[0])
Next
GUICtrlSetData($Combo, "shell32.dll", "shell32.dll")
_showIcons("shell32.dll")
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
Exit
Case $Combo
$sDLLName = GUICtrlRead($Combo)
_showIcons($sDLLName)
EndSwitch
WEnd
Func _showIcons($sDLLName)
Local $iSpalten, $iZeilen, $iBilder
_GUICtrlListView_DeleteAllItems($hListview)
$iCount = _LoadIcons($sDLLName)
WinSetTitle($hGui,"",$sTitel & $sDLLName)
;ConsoleWrite($sDLLName & " " & $iCount & @CRLF)
_GUICtrlListView_SetImageList($listview, $hImage, 1)
$iBilder = -1
For $iZeilen = 1 To Int(($iCount - 1) / + 1
$iBilder += 1
; Fügt die Items hinzu
_GUICtrlListView_AddItem($listview, "Bild: " & $iBilder, $iBilder)
For $iSpalten = 1 To 7
$iBilder += 1
; fügt die SubItems hinzu
_GUICtrlListView_AddSubItem($listview, $iZeilen - 1, "Bild: " & $iBilder, $iSpalten, $iBilder)
Next
Next
EndFunc ;==>_showIcons
Func _LoadIcons($sDLLName)
Local $iCount, $iBilder, $iError
Static $iGesamt
_GUIImageList_Destroy($hImage)
; Lädt die Bilder
$hImage = _GUIImageList_Create(32, 32, 5, 3, 128, 256)
_GUIImageList_AddIcon($hImage, @SystemDir & "\" & $sDLLName, 0,True)
$iBilder = 1
Do
$iError = _GUIImageList_AddIcon($hImage, @SystemDir & "\" & $sDLLName, $iBilder,True)
$iBilder += 1
Until $iError <= 0
$iCount = _GUIImageList_GetImageCount($hImage)
$iGesamt += $iCount
if $iCount <> 0 Then ConsoleWrite($sDLLName & " " & $iCount & " " & $iGesamt & @CRLF)
Return $iCount
EndFunc ;==>_LoadIcons
ich offe dies bringt dich ertmal weiter, BugFix hat eine UDF in Skripte veröffentlicht mit der du die Farben in einer LV für jedes Item/SubItem einstellen kannst
mfg autoBert
Hallo autoBert,
danke für das Beispiel, kannte ich noch nicht. Gibt es in Autoit sowas wie colspan und rowspan wie in Html?
Gruß
kara2010
*push*
gibt es wirklich keine Möglichkeit,'Spalten in einer Listview zu überlagern?
*push*
gibt es wirklich keine Möglichkeit, zeilen in einer Listview zu überlagern?
Na du bist ja ein Scherzkeks! Erst stellst du eine html-basierte Frage in einem AutoIt-Forum und pushst dann weil keiner mit deiner Frage was anfangen kann. :wacko:
Was verstehst du denn unter zeilen in einer Listview zu überlagern ? Wäre hilfreich, wenn du dein Problem nachvollziehbar erklärst. Wir haben inzwischen schon Tuts zur richtigen Fragestellung. Vielleicht liest du das mal zuerst.
Ich meinte das so:
Spalte1 | Spalte2 | Spalte3| Spalte4
Wert1......Wert2......Wert3....Wert4
Wert der über alles 4 Spalten geht
Gruß
kara2010
Hallo kara2010,
so wie Dein ScreenShot aussieht, hat das mit "colspan" nichts zu tun.
Das sind ganz "normale" Labels und zu jedem Kontak gibt eine eigene ListView.
Innerhalb einer ListView geht das meines Wissens nicht.
Kann es sein, dass du Groups meinst? Schau dir mal das Bsp. zu "_GUICtrlListView_InsertGroup" an.
wenn es grafisch auch so aussehen soll und keine Interaktion verlangt,
dann würde ich das mit HTML und einem _IECreateEmbedded umsetzen