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. stinger2k

Beiträge von stinger2k

  • Array Werte verbinden "Bitte Helfen..."

    • stinger2k
    • 4. April 2010 um 19:46

    Hallo Leute, hab mich wieder mal an mein script gesetzt und noch ein paar funktionen eingebaut.
    Nun zu meiner Frage: ich möchte nun wie bei meinen vorherigen posts eine zählfunktion die noch ein paar parameter berücksichtigt.
    Hier 2 ScreenShot´s zur Erklärung

    Danke für eure Hilfe...

    Dateien

    SnapShot.jpg 67,53 kB – 0 Downloads SnapShot2.jpg 62,82 kB – 0 Downloads
  • Excel Objekt -> Rahmen zeichnen bei jedem Seitenumbruch

    • stinger2k
    • 4. April 2010 um 14:54

    Hallo,
    Hat jemand Erfahrung mit Excel Objekten und kann mir dabei helfen?
    Ich möchte bei jeder letzten zeile in einem exceldokument einen abschließenden rahmen zeichnen. Und wollte dabei mit Objekten arbeiten und nicht mit makro´s in excel o.ä. da ich diese Abfrage bei jedem start das "Aktive Inhalte nicht zugelassen sind" umgehen.

    Hoffe Ihr könnt mir helfen ^^

    edit: So hab nun einen kleinen teilerfolg zu melden:

    [autoit]

    $oExcel.Range("A42:F42" ).Borders.LineStyle = 1

    [/autoit]

    damit zeichnet man zumindest rund um zellen rahmen, jedoch brauche ich es nun um nur am unteren zellenrand einen rahmen zu machen.
    also bitte ich nochmals um Hilfe...

    edit: Habs nun geschafft

    [autoit]

    $count= _GUICtrlListView_GetItemCount($hWnd) +12
    $endrange= "A"& $count &":F"& $count
    $oExcel.Range($endrange).Borders(9).LineStyle = 1

    [/autoit]

    im falle das jemand diesselbe funktion einmal benötigt.

  • Array fehler

    • stinger2k
    • 4. April 2010 um 09:37

    Raupi ich hoffe ich kann meine Ehre wiederherstellen....?

    Habe mit dem script mal rumgespielt und es ein bisschen umgeschrieben, so funktioniert es bei mir:

    [autoit]


    ase $Playliste
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    EndIf
    $Read = GUICtrlRead($hListView)
    If $Read = "" Then
    $ARRPLAY = _ListViewToArray($hListView)
    $playing_state = 1
    ;_ArrayDisplay($ARRPLAY)
    ;MsgBox(0, "", $ARRPLAY[0][0])
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer][0], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)

    [/autoit]

    Hoffe es geht nun bei allen, habe am Anfang mal das ShellExecute entfernt. Weiters hatte ich immer einen Error bei der Soundinitialisierung.

  • Array fehler

    • stinger2k
    • 3. April 2010 um 16:47

    In deinem Script verwendest du zuerst $CmdLine als Array danach machst du mit

    [autoit]

    $ARRPLAY = $CmdLine

    [/autoit]

    aus $ARRPLAY kein Array sondern eine Stringvariable, deshalb müsste dies so gelöst werden das du entweder $ARRPLAY durch $CmdLine [$titelnummer] ersetzt oder

    [autoit]

    $ARRPLAY[0] = $CmdLine[0]

    [/autoit]

    angibst.
    damit AutoIt mitkriegt das es sich bei beiden um ein Array handelt.

    Als Aufruf fang dein $CmdLine mit

    [autoit]

    If not IsArray ($CmdLine) then msgbox(0,"Fehler","$CmdLine ist kein Array")

    [/autoit]


    Gruß
    Stinger :thumbup:

  • Array fehler

    • stinger2k
    • 2. April 2010 um 11:03

    deklariere dein array von anfang als eines im Format:

    [autoit]

    Global $aRRay[1]

    [/autoit]
  • Was ist hier falsch?

    • stinger2k
    • 2. April 2010 um 10:56

    Lies dich mal in die Hilfe zu "For...To...Step...Next" ein, und wenn du von einer schleife in die nächste gehst mit den selben variablen und befehlen verwende lieber eine "func" dazu, wenn du willst das ein befehl nur einmal ausgeführt wird (so wie ich das sehe, wolltest du das erreichen mit

    [autoit]


    For $i = 1 To 1 Step 1

    [/autoit]


    das kannst du gleich weglassen da es überhaupt keinen sinn ergibt, dafür brauchst du nichmal eine schleife... (normale If Abfragen genügen für dein Skript), aber ich glaube bevor dir jetzt irgendwer behilflich sein wird, solltest du zummindest verstehen - was eine schleife ist bzw. Funktionen, und wie du sinnvoll mit befehlen umgehst(While 1...While 2... -> sind keine nummerierungen für eine schleife) eine schleife existiert solange bis du sie mit "Wend" oder "ExitLoop" beendest. Also stell deine Frage wieder, wenn du zumindest den Ansatz der Syntax in AutoIt verstehst.

    zum Abschluss als Erklärung:
    in deiner For Schleife deklarierst du $i als startwert 1 (ist noch ok) :thumbup:
    als endwert (kommt nach To...) gibst du als endwert auch 1 an (ist völlig sinnlos da du somit, die For Schleife ausser Kraft setzt) :thumbdown:
    und als Erhöhungsschritt bis zum Endwert gibst du auch 1 an (der ja sowieso nicht greift da der Startwert schon der Endwert ist und es somit nichts zum zählen gibt....) ;(

    Die deutsche AutoIt Hilfe bokummst du unter: http://translation.autoit.de/autoitinfo/hil…nd-24_03_10.zip

  • Array Werte verbinden "Bitte Helfen..."

    • stinger2k
    • 29. März 2010 um 06:31

    Leute, Ihr seid die besten...
    Genau So hatte ich mir das vorgestellt. (Nicht ganz...mein Ansatz war mit StringRegEx)
    So ist das ja noch viel besser als ich glaubte.

    Danke an euch... :thumbup::thumbup::thumbup:

  • Array Werte verbinden "Bitte Helfen..."

    • stinger2k
    • 28. März 2010 um 21:43

    Hier ein Beispiel für die Gui....

    und mein Ansatz für die rechnen() func:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 625, 443, 420, 185)
    $Liste = GUICtrlCreateListView("Pos.|T1|T2|T3|T4|T5", 20, 133, 580, 300, BitOR($LVS_REPORT, $LVS_EDITLABELS, $WS_EX_DLGMODALFRAME, $WS_EX_CLIENTEDGE))
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    _GUICtrlListView_SetColumnWidth($Liste, 0, 130)
    _GUICtrlListView_SetColumnWidth($Liste, 1, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 2, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 3, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 4, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 5, 80)
    _GUICtrlListView_SetExtendedListViewStyle($Liste, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER))
    GUICtrlCreateListViewItem("A" & "|" & 225 & "|" & 355 & "|" & 400 & "|" & 102 & "|" & 100, $Liste)
    GUICtrlCreateListViewItem("B" & "|" & 325 & "|" & 278 & "|" & 400 & "|" & 207 & "|" & 366, $Liste)
    GUICtrlCreateListViewItem("C" & "|" & 425 & "|" & 645 & "|" & 500 & "|" & 752 & "|" & 75, $Liste)
    GUICtrlCreateListViewItem("D" & "|" & 225 & "|" & 100 & "|" & 421 & "|" & 400 & "|" & 200, $Liste)
    GUICtrlCreateListViewItem("E" & "|" & 125 & "|" & 355 & "|" & 896 & "|" & 400 & "|" & 316, $Liste)
    GUICtrlCreateListViewItem("F" & "|" & 100 & "|" & 355 & "|" & 785 & "|" & 752 & "|" & 30, $Liste)
    GUICtrlCreateListViewItem("G" & "|" & 355 & "|" & 225 & "|" & 120 & "|" & 400 & "|" & 100, $Liste)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Liste
    rechnen()
    EndSwitch
    WEnd

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

    Func rechnen()
    $var="stk"
    For $i=1 to 1000
    GUICtrlCreateListViewItem($var[$i], $Liste)
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Array Werte verbinden "Bitte Helfen..."

    • stinger2k
    • 28. März 2010 um 21:11

    Hallo,

    Ich möchte eine Zählfunktion für meine Listview erstellen, und zwar habe ich eine mehrspaltige listview mit verschiedenen werten in jeder zeile.
    Nun möchte ich so eine Art Stk. Liste erstellen wo aus den Daten in meiner ListView die Häufigkeit der verschiedenen Werte gezählt werden.

    Ich weiß so eine func könnte etwas umfangreich sein, wäre jedoch für eure Hilfe sehr dankbar.

    Ich habe nämlich überhaupt keine Idee wie ich damit anfangen soll. ?(;(

    Hier mal ein Screenshot von meiner ListView: [Blockierte Grafik: http://www.autoit.de/index.php?page=Attachment&amp;attachmentID=8462&amp;h=aa6e81853a0885fa80fdba5d9cc0c8b6a11e3186]

  • $LVN_ENDLABELEDITW Nachricht abfangen...

    • stinger2k
    • 28. März 2010 um 19:26

    Stell das script doch hier rein? Mit der SuFu konnte ich nichts finden...

  • $LVN_ENDLABELEDITW Nachricht abfangen...

    • stinger2k
    • 28. März 2010 um 16:03

    Hab´s gerade selbst hinbekommen...
    Danke @progandy.... :thumbup:

    Hier mein Code:

    [autoit]


    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $Handle, $itemID, $itemind, $tNMHDR, $hWndListView, $tInfo
    $hWndListView = GUICtrlGetHandle($Liste)

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

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $Handle = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $itemID = DllStructGetData($tNMHDR, "IDFrom")
    $itemind = DllStructGetData($tNMHDR, "Code")
    Switch $Handle
    Case $hWndListView
    Switch $itemind

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

    Case $LVN_BEGINLABELEDITW
    Return False

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

    Case $LVN_ENDLABELEDITW
    $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
    Local $tBuffer = DllStructCreate("char Text[" & DllStructGetData($tInfo, "TextMax") & "]", DllStructGetData($tInfo, "Text"))
    If StringLen(DllStructGetData($tBuffer, "Text")) Then Return True

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

    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]
  • $LVN_ENDLABELEDITW Nachricht abfangen...

    • stinger2k
    • 28. März 2010 um 15:47

    Ist klar hatte ich schon gesehen, aber mir gefällt diese Methode mit der EditBox nicht.
    Und ausserdem sieht der Stil $LVS_EDITLABELS - Windows konformer aus als Bugfix´s Version.

    Der Ansatz mit der eigenen WM_NOTIFY Funktion ist jedoch sehr gut. Vielleicht kann mir jemand helfen mit diesem Ansatz zu arbeiten...?

  • $LVN_ENDLABELEDITW Nachricht abfangen...

    • stinger2k
    • 28. März 2010 um 15:26

    Hallo,

    möchte eine Listview machen, bei der man nur den ItemWert in der ersten Spalte ändern kann. Hab eine ListView mit dem Stil "$LVS_EDITLABELS" erstellt - welcher mir dies ermöglicht, nur habe ich keine Ahnung
    wie ich nun die eingegebenen Werte übernehmen kann, da ich schon seit ein paar stunden d. Suchens und Probierens :whistling: hinter mir habe, und noch immer nicht dahinter gekommen bin wie die Nachricht ($LVN_ENDLABELEDITW) abgefangen werden kann. ?(

    Vielleicht hat einer eine Idee von euch...

    PS:Anscheinend ist dies in C++ kein problem... man muss nur den Stil LVS_EDITLABELS angeben....

  • Mehrere Items in mehrspaltige ListView eintragen?

    • stinger2k
    • 27. März 2010 um 20:59

    Wir könnten ja ein "Voting" machen, ob diese udf es verdient in die nächste Version mitzuübernehmen?

    Ich habe vorher viel gegoogled und keine vergleichbare udf gefunden (auch nicht im engl. Forum)
    also hiermit gebe ich mein

    Vote!!

    ab...

    Hierbei nochmals meine Anerkennung an euch und eure Ideen... that´s :rock:

  • Mehrere Items in mehrspaltige ListView eintragen?

    • stinger2k
    • 27. März 2010 um 16:08

    garnichts es fehlte nur die 2. for schleife um auch mehrere kopierte items als solche zu trennen.
    Siehe meinen Screenshot nach deinem Post.

    Ich sagte ja dein "Grundgerüst" war goldwert. Nur das deine func nicht mehrere items berücksichtigt, und nur eines einfügt auch bei mehreren kopierten...

  • Mehrere Items in mehrspaltige ListView eintragen?

    • stinger2k
    • 27. März 2010 um 14:01

    @m-obi funktioniert einwandfrei...

    SEuBo
    danke, jetz hab ichs kapiert...

  • Mehrere Items in mehrspaltige ListView eintragen?

    • stinger2k
    • 27. März 2010 um 13:18

    @m-obi
    Das passt auch so wie in der Func oben, nur eben das ich es an der stelle einfügen will wo ich die markierung setze...

    Ohne deinen Ansatz wären sicher noch etliche Versuche nötig gewesen, danke auch dir dafür.. :thumbup:

  • Mehrere Items in mehrspaltige ListView eintragen?

    • stinger2k
    • 27. März 2010 um 12:54

    Perfekt! :thumbup::thumbup::thumbup:

    Vielleicht kannst dur mir die "for" schleifen erklären damit auch ich noob das verstehe?

    Ich danke dir 1000x...
    Ich wäre dafür das diese func in die Listview UDF aufgenommen wird! (ganz klar)
    da dies eine enorme Erleichterung darstellt mir Listview Elementen zu arbeiten, und eine vergleichbare Funktion nicht existiert (bis jetzt
    !)

  • Mehrere Items in mehrspaltige ListView eintragen?

    • stinger2k
    • 27. März 2010 um 12:46

    :thumbup:  SEuBo
    Du bist ein Genie!
    Als einziges Manko sehe ich, das die eingefügten Items nun in verkehrter Reihenfolge eingetragen werden(d.h. kopiert man Pos A. & Pos C. dann wird nicht A|C eingetragen sondern C|A)


    [Blockierte Grafik: http://www.autoit.de/index.php?page=Attachment&amp;attachmentID=8433&amp;h=44268cc964ae5c9f90dd1ba5beefb433f7a795c9]

    Dateien

    SnapShot.jpg 76,88 kB – 0 Downloads
  • Mehrere Items in mehrspaltige ListView eintragen?

    • stinger2k
    • 27. März 2010 um 12:25

    knifflige Aufgabe. Hierbei kopiert er nur bei einem Item den 1. Wert mit und einmal keinen....

    [Blockierte Grafik: http://www.autoit.de/index.php?page=Attachment&amp;attachmentID=8432&amp;h=057ad6ca96530aa43fb0e889a938b269ec24a24b]


    @dpjeezy89
    Nicht ganz da dabei im gewählten Index eingefügt wird... was der Bedienbarkeit und Übersichtlichkeit zugute kommt.

    Dateien

    SnapShot.jpg 72,63 kB – 0 Downloads

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™