1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. nuts

Beiträge von nuts

  • SuperMario Gameplay und Download

    • nuts
    • 11. September 2009 um 13:36

    Hey,

    macht wirklich Spaß und ist von der Geschwindigkeit auch super.
    Zocke hier gerade an einem alten AMD AthlonXP 2600+ (512MB Ram, WInXP) und es läuft ruckelfrei auf maximaler Größe.

    Eins ist mir aufgefallen. Irgendwann kommen so "gelbe Stein" (s. Anhang) und man kann sich einsperren. Ist das ein Bug oder ein Feature (Falle?)?

  • Druckansicht fürs Listview

    • nuts
    • 11. September 2009 um 10:46

    Freut mich das es dir gefällt.
    Es muss ja nicht über den IE gedruckt werden. Jede andere Möglichkeit eine .html Seite zu drucken ist verwendbar.

    Wie sieht denn die Seite im Firefox aus?

    edit \ Ist wohl nicht FF tauglich :(
    edit2 \ Naja beim FF ist die Grenze wohl bei 36 Items - irgendwie alles schon ein Murks :D

  • Ordner nach Dateien durchsuchen

    • nuts
    • 10. September 2009 um 21:54

    Post Nr.4 und dann Zeiel 43 tauschen. 8)
    Und dann versuchen das Skript zu verstehen. Dabei hilft es die Hilfe (gibts auch in deutsch) zu den Funktionen zu lesen und ggf. nochmal im Forum nachzuhaken ;)

  • Ordner nach Dateien durchsuchen

    • nuts
    • 10. September 2009 um 21:23

    Nimm mal Version zwei.
    Was du meinst ist das Listview von _ArrayDisplay, was nur zu Demozwecken eingebaut ist.

    edit \ die Suche lässt sich deinen Wünschen anpassen indem Zeile 43 durch

    [autoit]

    _GUICtrlListBox_SetCurSel($hList, _GUICtrlListBox_FindInText($hList, GUICtrlRead($Input)))

    [/autoit]

    ersetzt wird.

  • Ordner nach Dateien durchsuchen

    • nuts
    • 10. September 2009 um 20:40

    Ähm Zeile 16? In welchem Skript murkst du denn rum? :D

  • _GUICtrlListBox_SetItemData - Funktioniert nicht?

    • nuts
    • 10. September 2009 um 16:45

    Erscheint mir recht uneffizient.
    Die Listbox zeigt viele verschiedene Dateinamen, dabei gibt es die Möglichkeit Dateien umzubenennen.
    Danach muss die Listbox aktualisiert werden, schließlich hat sich ein Dateiname geändert.

    Edit \ _GUICtrlListBox_ReplaceString -gelöst- :D trotzdem danke für dein Bemühen.

  • _GUICtrlListBox_SetItemData - Funktioniert nicht?

    • nuts
    • 10. September 2009 um 16:36

    Mhm blöd. Wie gehts dann? Übersehe ich da was?

  • _GUICtrlListBox_SetItemData - Funktioniert nicht?

    • nuts
    • 10. September 2009 um 16:13

    Hey,

    möglicherweise missverstehe ich auch den Sinn vn _GUICtrlListBox_SetItemData.
    Damit sollte sich doch der Text (Wert) eines bestimmten Items ändern lassen oder?

    Funktioniert leider nicht. Also das Bsp. in der Hilfe auch nicht, daher mal ausnahmsweise kein Skript.

    Gruß nuts

  • Per Drag & Drop Dateien Umbenennen und in jeweilige Verzeichnisse kopieren

    • nuts
    • 10. September 2009 um 11:15

    Bitte das ganze Skript posten (Mit Spoiler & Autoit-Tags wäre nett).

  • Per Drag & Drop Dateien Umbenennen und in jeweilige Verzeichnisse kopieren

    • nuts
    • 10. September 2009 um 10:37

    Wieso funktioniert denn _Arraytostring nicht?
    Aus der Hilfe:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Dim $avArray[20]

    [/autoit] [autoit][/autoit] [autoit]

    ; Populate test array.
    For $i = 0 to UBound( $avArray ) - 1
    $avArray[$i] = Random( -20000, 20000, 1)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    _ArrayDisplay($avArray, "$avArray")

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "_ArrayToString() getting $avArray items 1 to 7", _ArrayToString($avArray, @TAB, 1, 7))

    [/autoit]

    Nochmal zur Aufgabenstellung:
    1. Gui erstellen
    2. Beliebige Dateien per Drag & Drop daraufziehen (Anzeige mit Orginalnamen oder nach dem Umbenennen?)
    3. Dateien umbenennen (nach welchem Muster? einfach etwas anhängen?)
    4. Umbenannte Dateien in ein vordefiniertes Verzeichnis kopieren (Per Button alle Dateien auf der Gui oder direkt beim Dropevent?)

    Ist das so richtig? Wenn du noch die Fragen beantwortest mach ich heute mittag ein kommentiertes Beispiel.

  • Ordner nach Dateien durchsuchen

    • nuts
    • 9. September 2009 um 23:52

    Na gib doch mal was ins Input ein ;)

  • Ordner nach Dateien durchsuchen

    • nuts
    • 9. September 2009 um 21:11

    Einen Pfad mit entsprechenden Dateien drin hast du angegeben?

    Hier das Ganze mit errorhandling:

    Spoiler anzeigen
    [autoit]


    #include <GuiListBox.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Local $Ordner = 'D:\Mp3\MP3s' ;hier den Pfad des Ordners eingeben
    HotKeySet("{ENTER}", "_Open_Ordner")

    [/autoit] [autoit][/autoit] [autoit]

    Opt('GUIOnEventMode', 1)

    [/autoit] [autoit][/autoit] [autoit]

    $gui = GUICreate('Schnelle Ordnerauswahl by funkey & nuts', 400, 600, -1, -1)
    GUISetOnEvent(-3, '_Ende')
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global $Input = GUICtrlCreateInput('', 10, 10, 380, 20)
    Global $List = GUICtrlCreateList('', 10, 40, 380, 560)
    Global $hList = GUICtrlGetHandle(-1)

    [/autoit] [autoit][/autoit] [autoit]

    _Listtoarray()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(1000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Listtoarray()
    local $aOrdner = _FileListToArray($Ordner, "*.*", 0) ;Als Filter kann man auch .mp3 oder sowas wählen
    if @error Then
    MsgBox(0, "Fehler" ,@error)
    return
    endif
    For $i = 1 To $aOrdner[0]
    GUICtrlSetData(-1, $aOrdner[$i])
    Next
    endfunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Check_Eingabe($iwParam)
    switch $iwParam
    case 0x03000003
    _GUICtrlListBox_SetCurSel($hList, _GUICtrlListBox_FindString($hList, GUICtrlRead($Input)))
    EndSwitch
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Open_Ordner()
    If GUICtrlRead($List) <> "" Then ShellExecute($Ordner & '\' & GUICtrlRead($List))
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Ende()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    _Check_Eingabe($iwParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
    If Not IsHWnd($List) Then $hWndListBox = GUICtrlGetHandle($List)
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $hWndFrom
    Case $List, $hWndListBox
    Switch $iCode
    Case $LBN_DBLCLK
    _Open_Ordner()
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND (Bugfix - http://www.autoit.de)

    [/autoit]
  • Ordner nach Dateien durchsuchen

    • nuts
    • 9. September 2009 um 14:32

    Hilft dir das?

    Spoiler anzeigen
    [autoit]


    #include <GuiListBox.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Local $Ordner = '' ;hier den Pfad des Ordners eingeben
    HotKeySet("{ENTER}", "_Open_Ordner")

    [/autoit] [autoit][/autoit] [autoit]

    Global $aOrdner = _FileListToArray($Ordner, "*.*", 0) ;Als Filter kann man auch .mp3 oder sowas wählen
    _ArrayDisplay($aOrdner)
    Opt('GUIOnEventMode', 1)

    [/autoit] [autoit][/autoit] [autoit]

    $gui = GUICreate('Schnelle Ordnerauswahl by funkey & nuts', 400, 600, -1, -1)
    GUISetOnEvent(-3, '_Ende')
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global $Input = GUICtrlCreateInput('', 10, 10, 380, 20)
    Global $List = GUICtrlCreateList('', 10, 40, 380, 560)
    Global $hList = GUICtrlGetHandle(-1)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To $aOrdner[0]
    GUICtrlSetData(-1, $aOrdner[$i])
    Next

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(1000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Check_Eingabe($iwParam)
    switch $iwParam
    case 0x03000003
    _GUICtrlListBox_SetCurSel($hList, _GUICtrlListBox_FindString($hList, GUICtrlRead($Input)))
    EndSwitch
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Open_Ordner()
    If GUICtrlRead($List) <> "" Then ShellExecute($Ordner & '\' & GUICtrlRead($List))
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Ende()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    _Check_Eingabe($iwParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
    If Not IsHWnd($List) Then $hWndListBox = GUICtrlGetHandle($List)
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $hWndFrom
    Case $List, $hWndListBox
    Switch $iCode
    Case $LBN_DBLCLK
    _Open_Ordner()
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND (Bugfix - http://www.autoit.de)

    [/autoit]

    Den Pfad zum Ornder kannst du auch per

    [autoit]

    Fileselectfolder

    [/autoit]

    auswählen.

  • Lautstärke ändern

    • nuts
    • 9. September 2009 um 11:40

    SoundSetWaveVolume fürs System (wave).
    Für Programme müssten diese selbst angesprochen werden. Dafür gibt es unterschiedliche Lösungen, kommt eben aufs jeweilige Prog. an!

  • Druckansicht fürs Listview

    • nuts
    • 8. September 2009 um 19:34

    Hey,

    hab hier was gebastelt um den ganzen Listviewinhalt auszudrucken.
    Das ganze funktioniert über eine .html Seite und da ich fast kein html kann ist die Formatierung wohl noch optimierungsfähig.
    Zum einfach mal schnell die Datensätze aus dem Listview auszudrucken ists aber ganz nützlich.
    Aber seht selbst:

    [Update: Start & End Index eingebaut - 18.09.2009]
    [Update: Schriftgröße eingebaut - 25.11.2011]


    Funktionen
    [autoit]


    Func _Listviewtoarray($hwnd)
    ; Nuts (http://www.autoit.de)
    ; hwnd = Handle to the Listview
    Local $col, $getcol, $getwidth, $lcount, $atext, $counter = 2
    $col = _GUICtrlListView_GetColumnCount($hwnd)
    $lcount = _GUICtrlListView_GetItemCount($hwnd)
    Local $alistview[$lcount + 2][$col]
    For $y = 0 To $col - 1
    $getcol = _GUICtrlListView_GetColumn($hwnd, $y)
    $getwidth = _GUICtrlListView_GetColumnWidth($hwnd, $y)
    $alistview[0][$y] = $getwidth
    $alistview[1][$y] = $getcol[5]
    Next
    For $i = 0 To $lcount - 1
    $atext = _GUICtrlListView_GetItemTextArray($hwnd, $i)
    For $x = 0 To $atext[0] - 1
    $alistview[$counter][$x] = $atext[$x + 1]
    Next
    $counter += 1
    Next
    Return $alistview
    $counter = 1
    EndFunc ;==>_Listviewtoarray

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNCTION# ===================================================================
    ; Name ..........: _ArrayToHTMLTable2
    ; Description ...: Creates a Print-View HTML-table from a 2dim-array
    ; AutoIt Version : V3.3.0.0
    ; Syntax ........: _ArrayToHTMLTable(ByRef $aArray [, $break = 37], )
    ; Parameter(s): .: $aArray - 2D Array
    ; $istart - Optional: Start-Index (Default = 0) First Item
    ; $iend - Optional: End-Index (Default = 0) Last Item
    ; $break - Optional: (Default = 37 -> DIN-A4 for IE) break after ...
    ; Return Value ..: Success - string
    ; Failure - empty string
    ; @ERROR - incorrect boarders ($istart & $iend)
    ; Author(s) .....: Nuts (http://www.autoit.de)
    ; Basis Funktion : Thorsten Willert _ArrayToHTMLTable
    ; Date ..........: 08.09.2009
    ; Version .......: 1.0
    ; ==============================================================================
    Func _ArrayToHTMLTable2(ByRef $aArray, $istart = 0, $iend = 0, $break = 37)
    Local $int, $theader, $width, $colwidth, $hcounter = 0, $del = $break + 1
    if not IsInt($istart) or not IsInt($iend) then
    SetError(2)
    Return
    endif
    Local $iD1 = UBound($aArray, 1)
    If @error Then
    SetError(1)
    Return ''
    EndIf
    Local $iD2 = UBound($aArray, 2)
    If @error Then
    SetError(1)
    Return ''
    EndIf
    For $i = 0 To $iD2 - 1
    $width += $aArray[0][$i]
    Next
    $colwidth &= '<colgroup>' & @CRLF
    For $i = 0 To $iD2 - 1
    $calc = 100 / $width * $aArray[0][$i]
    $colwidth &= @TAB & '<col width="' & $calc & '%">' & @CRLF
    Next
    $colwidth &= '</colgroup>' & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    Local $sTable = ""
    $sTable &= '<style type="text/css">' & @CRLF
    $sTable &= '</style>' & @CRLF
    $sTable &= '<table border="1" style="width:100%">' & @CRLF
    $sTable &= $colwidth
    $sTable &= '<tr>' & @CRLF
    For $i = 0 To $iD2 - 1
    $theader &= @TAB & '<th align="left">' & $aArray[1][$i] & '</th>' & @CRLF
    Next
    $sTable &= $theader
    $sTable &= '</tr>' & @CRLF
    If $iend > 0 and $iend < ($id1 -1) then
    $iend += 1
    elseif $iend = 0 then
    $iend = ($id1 -1)
    else
    SetError(2)
    return
    endif
    If $istart > 0 and $istart < $iend then
    $istart += 1
    elseif $istart = 0 Then
    $istart = 2
    else
    SetError(2)
    return
    endif
    For $i = $istart To $iend
    $hcounter += 1
    If $hcounter = $del Then
    $sTable &= '</table>' & @CRLF
    $sTable &= '<h5>Übertrag</h5>' & @CRLF
    $sTable &= '<h5 style="page-break-before:always">Übertrag</h5>' & @CRLF
    $sTable &= '<table border="1" style="width:100%">' & @CRLF
    $sTable &= $colwidth
    $sTable &= '<tr>' & @CRLF
    $sTable &= $theader
    $sTable &= '</tr>' & @CRLF
    $hcounter = 0
    $del = $break
    EndIf
    $sTable &= '<tr>' & @CRLF
    For $j = 0 To $iD2 - 1
    $sTable &= @TAB & '<td>' & $aArray[$i][$j] & '</td>' & @CRLF
    Next
    $sTable &= '</tr>' & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    Next

    [/autoit] [autoit][/autoit] [autoit]

    $sTable &= '</table>' & @CRLF
    $theader = ""
    $colwidth = ""
    Return $sTable
    EndFunc ;==>_ArrayToHTMLTable2

    [/autoit]
    Beispiel
    [autoit]


    #include<WindowsConstants.au3>
    #include<ListViewConstants.au3>
    #include<ButtonConstants.au3>
    #include<GUIConstantsEx.au3>
    #include<Guilistview.au3>
    #include<File.au3>
    #include<Array.au3>
    #include<IE.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $sHeader = "Artikelnummer|Art|Nummer|Baureihe" ; Die Überschriften für das Listview und für das "Neuer Eintrag"-Fenster
    Global $sDBFile = @ScriptDir & "\datenbank.html" ; Pfad und Name der Datenbank-Datei
    If Not FileExists($sDBFile) Then _FileCreate($sDBFile)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #Region Hauptfenster
    Global $hGui = GUICreate("Listview-Datenbank-Beispiel", 600, 480) ; Hauptfenster erstellen
    Global $hListView = GUICtrlCreateListView($sHeader, 0, 0, 600, 420, $LVS_SHOWSELALWAYS) ; Listview erstellen

    [/autoit] [autoit][/autoit] [autoit]

    Global $hLVHandle = GUICtrlGetHandle($hListView) ; das Handle vom Listview wird für die UDF-Listview-Funktionen benötigt
    _GUICtrlListView_SetColumn($hLVHandle, 0, "Artikelnummer", 100, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 1, "Art", 60, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 2, "Nummer", 90, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 3, "Baureihe", 100, 0)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To 90
    GUICtrlCreateListViewItem($i & "|Test|2|Uiui", $hListView)
    Next
    Global $hNew = GUICtrlCreateButton("Print", 5, 430, 80, 35)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg(1) ; Message-Event holen (1) = erweiterter Modus
    Switch $nMsg[0] ; anhand der Control-ID das entsprechende Case aufrufen

    [/autoit] [autoit][/autoit] [autoit]

    Case $hNew
    Local $array = _Listviewtoarray($hLVHandle)
    ;_ArrayDisplay($array)
    _test($array)

    [/autoit] [autoit][/autoit] [autoit]

    Case $GUI_EVENT_CLOSE ; User hat auf das Schließen-Symbol geklickt (bzw. die ESC-Taste gedrückt)
    Switch $nMsg[1] ; erweiterte Abfrage für welches Fenster
    Case $hGui ; User will das Hauptfenster schließen
    Exit
    EndSwitch
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _test($array)
    Local $open = FileOpen($sDBFile, 2)
    Local $html = _ArrayToHTMLTable2($array, 0, 0, 41, 14)
    ;MsgBox(1, "", @error)
    FileWrite($open, $html)
    FileClose($open)
    ShellExecute($sDBFile)
    ;local $oIE = _IECreate ($sDBFile) ;Die Befehle zum senden an den Drucker habe ich zum Testen deaktiviert.
    ;_IEAction ($oIE, "print")
    ;_IELoadWait ($oIE)
    ;_IEQuit ($oIE)
    EndFunc ;==>_test

    [/autoit] [autoit][/autoit] [autoit]

    Func _Listviewtoarray($hwnd)
    ; Nuts (http://www.autoit.de)
    ; hwnd = Handle to the Listview
    Local $col, $getcol, $getwidth, $lcount, $atext, $counter = 2
    $col = _GUICtrlListView_GetColumnCount($hwnd)
    $lcount = _GUICtrlListView_GetItemCount($hwnd)
    Local $alistview[$lcount + 2][$col]
    For $y = 0 To $col - 1
    $getcol = _GUICtrlListView_GetColumn($hwnd, $y)
    $getwidth = _GUICtrlListView_GetColumnWidth($hwnd, $y)
    $alistview[0][$y] = $getwidth
    $alistview[1][$y] = $getcol[5]
    Next
    For $i = 0 To $lcount - 1
    $atext = _GUICtrlListView_GetItemTextArray($hwnd, $i)
    For $x = 0 To $atext[0] - 1
    $alistview[$counter][$x] = $atext[$x + 1]
    Next
    $counter += 1
    Next
    Return $alistview
    $counter = 1
    EndFunc ;==>_Listviewtoarray

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; #FUNCTION# ===================================================================
    ; Name ..........: _ArrayToHTMLTable2
    ; Description ...: Creates a Print-View HTML-table from a 2dim-array
    ; AutoIt Version : V3.3.0.0
    ; Syntax ........: _ArrayToHTMLTable(ByRef $aArray [istart = 0 [, $iend = 0 [, $break = 41 [, $fontsize=14]]]] )
    ; Parameter(s): .: $aArray - 2D Array
    ; $istart - Optional: Start-Index (Default = 0) First Item
    ; $iend - Optional: End-Index (Default = 0) Last Item
    ; $break - Optional: (Default = 41 -> DIN-A4 for IE) break after ...
    ; $fontsize - Optional (Default = 14)
    ; Return Value ..: Success - string
    ; Failure - empty string
    ; @ERROR - incorrect boarders ($istart & $iend)
    ; Author(s) .....: Nuts (http://www.autoit.de)
    ; Basis Funktion : Thorsten Willert _ArrayToHTMLTable
    ; Date ..........: 08.09.2009
    ; Version .......: 1.0
    ; ==============================================================================
    Func _ArrayToHTMLTable2(ByRef $aArray, $istart = 0, $iend = 0, $break = 41, $fontsize=14)
    Local $int, $theader, $width, $colwidth, $hcounter = 0, $del = $break + 1
    if not IsInt($istart) or not IsInt($iend) then
    SetError(1,0,0)
    Return
    endif
    Local $iD1 = UBound($aArray, 1)
    If @error Then
    SetError(2,0,0)
    Return ''
    EndIf
    Local $iD2 = UBound($aArray, 2)
    If @error Then
    SetError(2,0,0)
    Return ''
    EndIf
    For $i = 0 To $iD2 - 1
    $width += $aArray[0][$i]
    Next
    $colwidth &= '<colgroup>' & @CRLF
    For $i = 0 To $iD2 - 1
    $calc = 100 / $width * $aArray[0][$i]
    $colwidth &= @TAB & '<col width="' & $calc & '%">' & @CRLF
    Next
    $colwidth &= '</colgroup>' & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    Local $sTable = ""
    $sTable &= '<style type="text/css">' & @CRLF
    $sTable&= 'td {font-size:'&$fontsize&';}' &@crlf
    $sTable&= 'th {font-size:'&$fontsize&';}' &@crlf
    $sTable &= '</style>' & @CRLF
    $sTable &= '<table border="1" style="width:100%">' & @CRLF
    $sTable &= $colwidth
    $sTable &= '<tr>' & @CRLF
    For $i = 0 To $iD2 - 1
    $theader &= @TAB & '<th align="left">' & $aArray[1][$i] & '</th>' & @CRLF
    Next
    $sTable &= $theader
    $sTable &= '</tr>' & @CRLF
    If $iend > 0 and $iend < ($id1 -1) then
    $iend += 1
    elseif $iend = 0 then
    $iend = ($id1 -1)
    else
    SetError(3,0,0)
    return
    endif
    If $istart > 0 and $istart < $iend then
    $istart += 1
    elseif $istart = 0 Then
    $istart = 2
    else
    SetError(3,0,0)
    return
    endif
    For $i = $istart To $iend
    $hcounter += 1
    If $hcounter = $del Then
    $sTable &= '</table>' & @CRLF
    $sTable &= '<h5>Übertrag</'&$fontsize&'>' & @CRLF
    $sTable &= '<h5 style="page-break-before:always">Übertrag</h5>' & @CRLF
    $sTable &= '<table border="1" style="width:100%">' & @CRLF
    $sTable &= $colwidth
    $sTable &= '<tr>' & @CRLF
    $sTable &= $theader
    $sTable &= '</tr>' & @CRLF
    $hcounter = 0
    $del = $break
    EndIf
    $sTable &= '<tr>' & @CRLF
    For $j = 0 To $iD2 - 1
    $sTable &= @TAB & '<td>' & $aArray[$i][$j] & '</td>' & @CRLF
    Next
    $sTable &= '</tr>' & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    Next

    [/autoit] [autoit][/autoit] [autoit]

    $sTable &= '</table>' & @CRLF
    $theader = ""
    $colwidth = ""
    Return $sTable
    EndFunc ;==>_ArrayToHTMLTable2

    [/autoit]

    Noch nicht eingegangen wird auf die tatsächliche Listviewspaltenbreite. Im Update eingabut.

    Zum Testen müsst ihr die Druckansicht im Browser bemühen oder einen Testdruck machen.
    Die URL lässt sich leider bei html Dokumenten nicht automatisch entfernen (oder doch? hab nichts dazu gefunden), was irgendwie blöd aussieht :( s. Reg-tweaks

    Vorschläge für ein alternatives Format sind auch willkommen, mein Ziel ist eine Druckansicht ohne Fremdsoftware.

    Gruß nuts

    P.S. Bin schon gespannt aufs Andy's Lösung mit seiner Openoffice UDF :)


    [Update: Regtweaks] Irgendwie fällt mir dazu kein sinnvolles Konzept ein und in der Reg. rumpfuschen soll jeder selbst machen ;)
    Die Parameter sind hier nachzulesen: http://www.febooti.com/products/iezoo…ter-header.html
    Mit XP unter folgendem Key: Hkey_Current_User\Software\Microsoft\Internet Explorer\PageSetup & footer bzw. header

  • Resizen von Columns in listviews

    • nuts
    • 8. September 2009 um 15:30

    Zeig mal dein Skript. Die Proportionen bleiben doch beim resizen erhalten.

  • [2.Gui öfnnet sich nichtt]

    • nuts
    • 8. September 2009 um 14:35

    Andere Lösung:

    Spoiler anzeigen
    [autoit]


    #include<WindowsConstants.au3>
    #include<GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #Region Hauptfenster
    Global $hGui = GUICreate("Listview-Datenbank-Beispiel", 600, 480) ; Hauptfenster erstellen
    Global $hNew = GUICtrlCreateButton("Öffne anderes Gui-Element", 100, 100, 150, 40)
    #EndRegion Hauptfenster

    [/autoit] [autoit][/autoit] [autoit]

    #Region Fenster für neuen Eintrag
    Global $hGuiNew = GUICreate("Neuer Eintrag", 600, 480) ; das Fenster "Neuer Eintrag" erstellen
    Global $back = GUICtrlCreateButton("Zurück", 100, 100, 150, 40)
    #EndRegion Fenster für neuen Eintrag

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW, $hGui) ; Hauptfenster sichtbar machen

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg(1) ; Message-Event holen (1) = erweiterter Modus
    Switch $nMsg[0] ; anhand der Control-ID das entsprechende Case aufrufen
    Case $hNew; User hat auf "Neuer Eintrag" geklickt
    WinSetTitle($hGuiNew, "", "Neuer Eintrag") ; den Titel des Fenster anpassen
    GUISetState(@SW_SHOW, $hGuiNew) ; das Fenster "Neuer Eintrag" anzeigen
    GUISetState(@SW_DISABLE, $hGui) ; das Hauptfenster deaktivieren
    case $back
    GUISetState(@SW_HIDE, $hGuiNew) ; "Neuer Eintrag"-Fenster verstecken
    GUISetState(@SW_ENABLE, $hGui) ; Hauptfenster wieder aktivieren
    WinActivate($hGui)
    Case $GUI_EVENT_CLOSE ; User hat auf das Schließen-Symbol geklickt (bzw. die ESC-Taste gedrückt)
    Switch $nMsg[1] ; erweiterte Abfrage für welches Fenster
    Case $hGui ; User will das Hauptfenster schließen
    If MsgBox(32 + 4, "Beenden", "Wollen sie das Programm wirklich beenden?") = 6 Then Exit ; wenn ja, dann Exit
    Case $hGuiNew ; User will das "Neuer Eintrag"-Fenster schließen
    GUISetState(@SW_HIDE, $hGuiNew) ; "Neuer Eintrag"-Fenster verstecken
    GUISetState(@SW_ENABLE, $hGui) ; Hauptfenster wieder aktivieren
    WinActivate($hGui) ; und in den Vordergrund holen
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]
  • [2.Gui öfnnet sich nichtt]

    • nuts
    • 7. September 2009 um 21:50

    Ohne dein Skript ist da nichts zu machen. ;)

  • Drucken

    • nuts
    • 7. September 2009 um 20:27

    Dem stimme ich im Prinzip zu (html schaff mich auch grad voll, wird wohl nur was ganz einfaches :rolleyes: ).
    Trotzdem sollte es eine Funktion werden, die ohne Fremdsoftware auskommt.
    Wenn jemand eine bessere Idee als html hat, nur her damit. 8)

    edit \ Wie wärs wenn du ein Bsp. mit deiner OpenOffice UDF machst und ich quäle html noch ein bisschen? :D

  • Drucken

    • nuts
    • 7. September 2009 um 19:47

    Ist aber dann nicht universal einsetzbar.

    Keine Tabellenkalkulation auf dem Pc, keine Druckfunktion.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™