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. martin-p7ht

Beiträge von martin-p7ht

  • Ein PDF Objekt wieder von einer GUI entfernen

    • martin-p7ht
    • 8. Mai 2017 um 17:11

    GUICtrlDelete($AObj1_ctrl) funktinoniert. Manchmal kanns auch einfach sein. Vielen Dank für den Tipp.

    Kann es sein, dass die Handles, zurückgegeben von GUICreate-Funktionen, per default globale Variablen erzeugen?


    Gruß
    Martin

  • Ein PDF Objekt wieder von einer GUI entfernen

    • martin-p7ht
    • 5. Mai 2017 um 19:24

    Hallo,

    ich habe eine GUI gebaut, die ein PDF anzeigt. Oben soll eine Reihe von Buttons sein, mit denen man zwischen andere Objekten hin und her schalten kann. Dazu muss ich das PDF aber erstmal wieder von der GUI loswerden. Und das klappt nicht. In anderen Foren haben die Leute das Handle einfach auf 0 gesetzt. Klappt bei mir aber nicht.

    AutoIt
    $hGUI = GUICreate("myGUI", 1000, 1000, Default, Default, -1)
    
    
    $hButton1 = GUICtrlCreateButton("Objekt löschen", 5, 5, 90, 25)
    
    
    ; PDF Objekt erstellen
    $AObj1 = ObjCreate("AcroPDF.PDF.1")
    $AObj1.src= "C:\temp\meinPDF.pdf"
    ;GUICtrlCreateObj ( ObjectVar, left, top [, width [, height]] )
    $AObj1_ctrl = GUICtrlCreateObj($AObj1, 5, 200, 800, 800)
    
    
    GUISetState(@SW_SHOW)
    
    
        ; Loop until the user exits.
        While 1
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE, $idClose
                    ExitLoop
    
    
                Case $hButton1 
                   $AObj1 = 0
                   $AObj1_ctrl = 0
    
    
            EndSwitch
        WEnd
    Alles anzeigen

    Eine Idee wie man das PDF Objekt wegnehmen kann?

    Gruß
    Martin

  • ListView sortieren, erst Spalte 1, dann Spalte 2, dann Spalte 3 wie in Excel

    • martin-p7ht
    • 3. Juli 2015 um 21:51

    Und so geschah es :thumbup:

  • ListView sortieren, erst Spalte 1, dann Spalte 2, dann Spalte 3 wie in Excel

    • martin-p7ht
    • 2. Juli 2015 um 22:57

    Sieht gut aus! Vielen Dank ihr beiden.
    Hier mal meine Komplettlösung, vielleicht hilfts noch jemandem:

    AutoIt: ListViewArraySort.au3
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <WindowsConstants.au3>
    #include <ListViewConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    #include <Array.au3>
    
    
    
    
    
    
    Example()
    
    
    Func Example()
    
    
       $iArrayLaenge = 10
       Dim $array [$iArrayLaenge][3] = [["Fleisch", "Pute", "Gut durchbraten"], _
                 ["Gemüse", "Karotten", "Färbt die Haut"], _
                 ["Obst","Brombeeren", "Heißen Blackberrys in English"], _
                 ["Gemüse", "Karotten","Augenfreundlich"], _
                 ["Obst", "Apfel", "Nicht zu vergleichen mit Birnen"], _
                 ["Obst", "Apfel", "An Apple a day..."], _
                 ["Fleisch", "Rind", "Die Flamme darf das Fleisch nur küssen"], _
                 ["Fleisch", "Pute","Auf gute Bioqualität achten"], _
                 ["Gemüse", "Gurken", "Scheibchenweise ein Genuss"], _
                 ["Fleisch", "Rind", "Abgrundtief Gut"]]
    
    
       Global $aI[3]
       ;order of sorting rows - here row 1, 0
       $aI[0] = 0
       $aI[1] = 1
       $aI[2] = 2
    
    
    
    
       GUICreate("listview items", 620, 450, 100, 200, -1)
    
    
    ;~ _ArrayDisplay($array,"Vor dem Sortieren")
    
    
       ; Array sortieren, $aI gibt die Reihenfolge der Spalten an
       _ArraySort_MultiColumn($array, $aI)
    
    
    ;~ _ArrayDisplay($array, "Nach dem Sortieren")
    
    
    
    
       Local $idListview = GUICtrlCreateListView("Hauptkategorie|Unterkategorie|Betreff ", 10, 10, 600, 250)
       Local $idButton = GUICtrlCreateButton("Value?", 75, 370, 70, 20)
       _GUICtrlListView_SetColumnWidth($idListview, 0, 150)
       _GUICtrlListView_SetColumnWidth($idListview, 1, 150)
       _GUICtrlListView_SetColumnWidth($idListview, 2, 275)
    
    
    
    
       ; ListView mit Daten aus dem Array füllen
       for $i=0 to $iArrayLaenge-1 step 1
    	  GUICtrlCreateListViewItem( $array[$i][0] & "|" & $array[$i][1] & "|" & $array[$i][2], $idListview)
       Next
    
    
    
    
       Local $idInput = GUICtrlCreateInput("", 20, 300, 150)
    
    
       ; Am Ende Anzeige starten
       GUISetState(@SW_SHOW)
    
    
        ; Loop until the user exits.
        While 1
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
                    ExitLoop
    
    
                Case $idButton
                    MsgBox($MB_SYSTEMMODAL, "listview item", GUICtrlRead(GUICtrlRead($idListview)), 2)
    
    
                Case $idListview
                    MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2)
    
    
            EndSwitch
        WEnd
     EndFunc   ;==>Example
    
    
    
    
    
    
    ; #FUNCTION# =============================================================================
    ; Name.............:    _ArraySort_MultiColumn
    ; Description ...:      sorts an array at given colums (multi colum sort)
    ; Syntax...........:    _ArraySort_MultiColumn(ByRef $aSort, ByRef $aIndices)
    ; Parameters ...:       $aSort - array to sort
    ;                       $aIndices - array with colum indices which should be sorted in specified order - zero based
    ;                       $oDir/$iDir - sort direction - if set to 1, sort descendingly else ascendingly
    ; Author .........:     UEZ
    ; Version ........:     v0.70 build 2013-11-20 Beta
    ; =========================================================================================
    Func _ArraySort_MultiColumn(ByRef $aSort, ByRef $aIndices, $oDir = 0, $iDir = 0)
        If Not IsArray($aIndices) Or Not IsArray($aSort) Then Return SetError(1, 0, 0) ;checks if $aIndices is an array
        If UBound($aIndices) > UBound($aSort, 2) Then Return SetError(2, 0, 0) ;check if $aIndices array is greater the $aSort array
        Local $1st, $2nd, $x, $j, $k, $l = 0
        For $x = 0 To UBound($aIndices) - 1 ;check if array content makes sense
            If Not IsInt($aIndices[$x]) Then Return SetError(3, 0, 0) ;array content is not numeric
        Next
        If UBound($aIndices) = 1 Then Return _ArraySort($aSort, $oDir, 0, 0, $aIndices[0]) ;check if only one index is given
        _ArraySort($aSort, $oDir, 0, 0, $aIndices[0])
        Do
            $1st = $aIndices[$l]
            $2nd = $aIndices[$l + 1]
            $j = 0
            $k = 1
            While $k < UBound($aSort)
                If $aSort[$j][$1st] <> $aSort[$k][$1st] Then
                    If $k - $j > 1  Then
                        _ArraySort($aSort, $iDir , $j, $k - 1, $2nd)
                        $j = $k
                    Else
                        $j = $k
                    EndIf
                EndIf
                $k += 1
            WEnd
            If $k - $j > 1 Then _ArraySort($aSort, $iDir, $j, $k, $2nd)
            $l += 1
        Until $l = UBound($aIndices) - 1
        Return 1
    EndFunc
    Alles anzeigen
  • ListView sortieren, erst Spalte 1, dann Spalte 2, dann Spalte 3 wie in Excel

    • martin-p7ht
    • 2. Juli 2015 um 20:48

    Hallo Ihr lieben,

    ich habe eine ListView, welche mit unsortieren Daten aus einer Ini Datei gefüttert wird. Vor Anzeige soll diese einmalig sortiert werden, erst Spalte 1, dann Spalte 2, dann Spalte 3 wie es in Excel möglich ist.
    Ist das möglich? Wenn ja wie?

    Ich habe mal das Bsp aus der Hilfe um ein paar Fantasiedaten erweitert :


    AutoIt: ListViewSort.au3
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <WindowsConstants.au3>
    #include <ListViewConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    Example()
    
    
    Func Example()
        GUICreate("listview items", 620, 450, 100, 200, -1)
    
    
    
    
       Local $idListview = GUICtrlCreateListView("Hauptkategorie|Unterkategorie|Betreff ", 10, 10, 600, 250)
       Local $idButton = GUICtrlCreateButton("Value?", 75, 370, 70, 20)
       _GUICtrlListView_SetColumnWidth($idListview, 0, 150)
       _GUICtrlListView_SetColumnWidth($idListview, 1, 150)
       _GUICtrlListView_SetColumnWidth($idListview, 2, 275)
    
    
       ; Unsortierte Daten
        Local $idItem1 = GUICtrlCreateListViewItem("Fleisch|Pute|Gut durchbraten", $idListview)
        Local $idItem2 = GUICtrlCreateListViewItem("Gemüse|Karotten|Färbt die Haut", $idListview)
        Local $idItem3 = GUICtrlCreateListViewItem("Obst|Brombeeren|Heißen Blackberrys in English", $idListview)
        Local $idItem4 = GUICtrlCreateListViewItem("Gemüse|Karotten|Augenfreundlich", $idListview)
        Local $idItem5 = GUICtrlCreateListViewItem("Obst|Apfel|Nicht zu vergleichen mit Birnen", $idListview)
        Local $idItem6 = GUICtrlCreateListViewItem("Obst|Apfel|An Apple a day...", $idListview)
        Local $idItem7 = GUICtrlCreateListViewItem("Fleisch|Rind|Die Flamme darf das Fleisch nur Küssen", $idListview)
        Local $idItem8 = GUICtrlCreateListViewItem("Fleisch|Pute|Auf gute Bioqualität achten", $idListview)
        Local $idItem9 = GUICtrlCreateListViewItem("Gemüse|Gurken|Scheibchenweise ein Genuss", $idListview)
    
    
        Local $idInput = GUICtrlCreateInput("", 20, 300, 150)
    
    
        GUISetState(@SW_SHOW)
    
    
       ; Liste sortieren
       _GUICtrlListView_SimpleSort ( $idListview, True, 0 )
    
    
        ; Loop until the user exits.
        While 1
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
                    ExitLoop
    
    
                Case $idButton
                    MsgBox($MB_SYSTEMMODAL, "listview item", GUICtrlRead(GUICtrlRead($idListview)), 2)
    
    
                Case $idListview
                    MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2)
    
    
            EndSwitch
        WEnd
    EndFunc   ;==>Example
    Alles anzeigen

    Ich habe schon eine Weile gegoogelt, bekomme aber nur für mich unverständliche Scripts. Da geht es immer nur darum auf die Spalten überschriften klicken zu können und danach zu sortieren wie es z.b. der Explorer macht. Das will ich aber gar nicht. Nur einmalig sortiert werden soll sie. Die ListView wird später als kleinen Teil eines größeren Script eingefügt, welches über den MessageLoop läuft. Das sollte wenn möglich so beibehalten werden, denn laut Hilfe soll man ja die EventModes nicht mischen.


    Ich freue mich auf eure Ideen.

    mfg
    Martin

  • PDF einbinden klappt nicht

    • martin-p7ht
    • 20. Juni 2012 um 20:15
    Zitat von ReFran

    Hallo,

    eingefügte Objekte werden in eine GUI eingebunden und ... $WS_CLIPCHILDREN should used in GUICreate().
    Soll mit Tabs gearbeitet werden muss für jedes TAB eine eigene GUI erzeugt werden.

    Mit den zahlreichen Beispielen für "TabOnTab" oder "TabInTab" bereitet das Einbinden von PDFs (am besten über IE-Objekt) keine Probleme.

    Mfg, Reinhard

    Das habe ich leider nicht kapiert. Ich habe es jetzt ganz anders gelöst. Alle Tabs entfernt und eine Tab ählichen Reihe von Buttons erstellt. Bei Klick auf den jeweiligen Button wird das jeweilige gebrauchte GUICtrl erzeugt und alle anderen mit GUICtrlDelete gelöscht. Das ist zwar noobstyle, funktioniert aber.

    Trotzdem Danke für die Vorschläge.

    Gruß
    Maddin

  • PDF einbinden klappt nicht

    • martin-p7ht
    • 15. Juni 2012 um 15:25

    Hi, also wenn ich in meiner Version alle Tab Funktionen auskommentiere, geht es komischerweise. Ich kann in dem PDF herumscrollen, zoomen und trotzdem die GUI verschieben oder schliessen. Das hat irgentwie mit dem Tab zu tun? ?(

  • PDF einbinden klappt nicht

    • martin-p7ht
    • 14. Juni 2012 um 23:31

    Hi,
    also auf der Arbeit hab ich Win7 64 bit + Reader x. Zuhause WinXP 32 Bit Acrobat8. Beide zeigen das gleiche Fehlerbild, man sieht die PDF, sobald man ins Fenster klickt, reagiert die GUI und alles drin nicht mehr. Habe trotzdem mal #AutoIt3Wrapper_UseX64=n ausprobiert, hat aber wie schon vermutet nichts gebracht. Ich gehe auch gern ganz andere Wege, Hauptsache es funktioniert am Ende. Wie würde es denn mit Hilfe von embedded-IE + PDF aussehen? Habe über Google zumindest keine Hilfreichen Code Schnipsel mit diesen Keywords gefunden. Ich bin noch nicht so fit in autoIT. Man liest öfter man solle statt Adobe den foxit reader nehmen. Von mir aus auch das, aber ein Beispiel bräuchte ich auch hier.

    Hoffe Ihr könnt mir weiterhelfen.
    Gruss
    Maddin

  • PDF einbinden klappt nicht

    • martin-p7ht
    • 13. Juni 2012 um 17:35

    Hallo Leute,

    ich möchte in eine GUI mit mehreren Tabs in einem der Tabs ein PDF einbinden.

    [autoit]


    #include <GUIConstants.au3>

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

    ; GUICreate ( "title" [, width [, height [, left [, top [, style [, exStyle [, parent]]]]]]] )
    $Form1 = GUICreate("AForm1", 800, 600,10, 10);522, 529, 236, 125)
    ; GUICtrlCreateTab ( left, top [, width [, height [, style [, exStyle]]]] )
    $Tab1 = GUICtrlCreateTab( 5, 5, 700, 500)
    $TabSheet1 = GUICtrlCreateTabItem("Ein vorerst leerer Tab")
    $TabSheet2 = GUICtrlCreateTabItem("PDF Tab")

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

    $AObj1 = ObjCreate("AcroPDF.PDF.1")
    $AObj1.src= @ScriptDir & "\Test.pdf"
    ;GUICtrlCreateObj ( ObjectVar, left, top [, width [, height]] )
    $AObj1_ctrl = GUICtrlCreateObj($AObj1, 25, 35, 650, 450)

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

    GUICtrlCreateTabItem("") ; Beendet die Tab Definition
    GUISetState(@SW_SHOW)

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

    ; Der doppelte "Switch" ist eine Vorbereitung für eine 2. GUI
    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    case $GUI_EVENT_CLOSE
    Switch $nMsg[1]
    Case $Form1
    GUIDelete ($Form1)
    ExitLoop
    EndSwitch
    EndSwitch
    sleep (100)
    WEnd

    [/autoit]

    Das PDF wird im 2. Tab auch angezeigt, sobald man aber reinklickt, reagiert das Fenster nicht mehr. Man kann es nicht mal verschieben. Es reagiert erst wieder wenn man den Acrobat Reader im Taskmanager killt.

    Kann mir einer weiter helfen?

    mfg
    maddin

  • String Addition

    • martin-p7ht
    • 15. August 2006 um 23:50

    Hi, wie kann man sich einen String zusammenbasteln?
    Dachte spontan an sowas wie:

    Dim $sString1
    $sString1="Super"
    $sString1=$sString1 + " Forum"

    ...würde "Super Super" ergeben. Geht aber nicht.
    Kann mir jemand helfen?

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™