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

  • SoundPlay stoppen?

    • nuts
    • 21. April 2010 um 16:06

    Darum gehts hier aber nicht :P (s. Fehlerbeschreibung Post3)

  • Aus ini listview item erstellen

    • nuts
    • 21. April 2010 um 15:59
    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <File.au3>

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

    global $ini = @ScriptDir & "\dvb-tools.ini" ;Pfad zur ini

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

    $Form1 = GUICreate("Ini read to Listview - Beispiel", 700, 500, -1, -1)
    $ListView1 = GUICtrlCreateListView("", 20, 20,660 , 350)
    $hlistview= GUICtrlGetHandle($ListView1)
    _GUICtrlListView_AddColumn($hListView, "Key", 200)
    _GUICtrlListView_AddColumn($hListView, "Value", 450)

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

    $Button2 = GUICtrlCreateButton("Iniread", 20, 420, 120, 33, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $Button2
    _Initolistview($hlistview, $ini)
    EndSwitch
    WEnd

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

    Func _Initolistview($hwnd, $path)
    ; nuts (http://www.autoit.de)
    ; $hwnd = Handle to the listview
    ; $path = ini path
    local $anames, $aread
    If not IsHWnd($hwnd) then
    SetError(1) ;not a handle -> @error = 1
    Return
    ElseIf not FileExists($path) then
    SetError(2) ;ini not found -> @error = 2
    Return
    endif
    $anames = IniReadSectionNames($path) ; Namen aller Sections in ein Array laden
    $counter = -1;_GUICtrlListView_GetItemCount($hwnd) ;zählt mit start bei -1
    for $i = 1 to $anames[0] ;loop durchs Array der Sectionnames
    $aread = IniReadSection($path, $anames[$i]) ;ganze Section in ein Array laden
    if @error then ;sollte die Section leer sein
    $counter+= 1
    _GUICtrlListView_EnableGroupView($hwnd)
    _GUICtrlListView_InsertGroup($hwnd, -1, $i, $anames[$i]) ;die Gruppe für die Section erstellen
    _GUICtrlListView_AddItem($hwnd, "Kein Eintrag") ; Item "Kein Eintrag" erstellen -> hat nur informationscharakter
    _GUICtrlListView_SetItemGroupID($hwnd, $counter, $i) ; Item zur eben erstellten Gruppe zuordnen
    ContinueLoop ; loop verlassen und zum nächsten springen
    endif
    ;hier landen wir wenn die Section nicht leer war
    _GUICtrlListView_EnableGroupView($hwnd)
    _GUICtrlListView_InsertGroup($hwnd, -1, $i, $anames[$i]) ; die Gruppe für die Section erstellen
    for $x = 1 to $aread[0][0] ; Das Array mit den Daten zur Section durchgehen
    $counter+= 1
    _GUICtrlListView_AddItem($hwnd, $aread[$x][0]) ; Item erstellen für den Key in der INI
    _GUICtrlListView_AddSubItem($hwnd,$counter, $aread[$x][1],1) ; Subitem für den Value in der INI
    _GUICtrlListView_SetItemGroupID($hwnd, $counter, $i) ; Item der eben erstellten Gruppe hinzufügen
    next

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

    next
    endfunc

    [/autoit]


    In Zeile 46.

  • Strahl Dreieck Kollision

    • nuts
    • 21. April 2010 um 14:00

    Schau mal hier rein: http://www.delphigl.com/forum/viewtopic.php?f=30&t=8346
    Mein vorgeschlagener Weg scheint zum Ziel zu führen. 8o

    Ob der Punkt im Dreieck liegt prüft man mit folgenden Bedingungen:

    Code
    0<= s <=1
    0<= t <=1
    0<= s+t <=1


    s und t sind dabei die Parameter vor den Bewegungsvektoren der Ebenengleichung.
    s und t wird durch einsetzen des Durchstoßpunktes und lösen des Gleichungssystem bestimmt und anschließend auf die Bedingungen geprüft.

    P.S. Auf Papier kann ich dir das gern mal vorrechnen und zuschicken, per Autoit fehlt mir Zeit und Können :(

  • Strahl Dreieck Kollision

    • nuts
    • 20. April 2010 um 18:31

    Hm lass uns am besten noch ein paar Meinung anhören ... das ist ganz schön schwerer Stoff zum programmieren und am Ende gibts vielleicht einen einfachen mathematischen Trick ...

  • Strahl Dreieck Kollision

    • nuts
    • 20. April 2010 um 18:17
    Zitat von moritz1243


    Mit der Geradengleichung meinst du: Kollisionspunkt(x,y,z) = StartpunktdesStrahl(_, _, _,) + VektordesStrahl(_, _, _)*t?


    Genau und t bekommen wir aus den 3 Gleichungen mit den 3 unbekannten.
    Per Software wäre das imho über das Gauß' sche Eliminationsverfahren machbar. http://de.wikipedia.org/wiki/Gau%C3%9F…ationsverfahren

    Zitat von moritz1243


    Achja nochwas, wie berechen ich den ob die Position in dreieck ist?


    Bin ich auch noch am überlegen :wacko:

    edit \ ähm den Durchstoßpunkt muss man dann wohl mit den 3 Gerade (AB, AC und BC -> Punkte vom Dreeick) vergleichen?
    Muss ich mir aber erst nochmal genau überlegen :whistling:
    Wo steckt denn UEZ? :D

  • Strahl Dreieck Kollision

    • nuts
    • 20. April 2010 um 17:54

    Scheiterts an der Mathe (kannst du doch viel besser als ich ... :whistling: ) oder an der Programmumsetzung?

    Zur Mathe:

    A (0|0|0) ; B (1|1|1) ; C(2|2|2) => Dreieck
    Bewegunsvektor AB = (1|1|1) minus (0|0|0) = (1|1|1) -> AC geht genauso
    => Ebenengleichung: (0|0|0) + r * (1|1|1) + s * (2|2|2)

    Y (5|5|5) Strahl- bzw. Geradenstartpunkt + Bewgungsvektor YZ (3|3|3)
    Geradengleichung: (5|5|5) + t * (3|3|3)

    Gleichsetzen:

    Code
    0 + r *1 + s*2 = 5 + t*3
    0 + r *1 + s*2 = 5 + t*3
    0 + r *1 + s*2 = 5 + t*3


    => auflösen nach t
    => in Geradengleichung einsetzen
    => ergibt den Durchstoßpunkt

    P.S. So ca. Matheabi ist schon 5 Jahre her 8o

  • Strahl Dreieck Kollision

    • nuts
    • 20. April 2010 um 16:45

    Mit dem Dreieck kannst du eine Ebene definieren mit dem Startpunkt A und den Vektoren AB und AC.
    Der Strahl definiert eine Gerade mit dem Startpunkt Y und dem Bewegungsvektor YZ.

    Um den Durchstoßpunkt zu berechnen muss man beide gleichsetzen. Anschließend schauen ob der Punkt auch wirklich im Dreieck liegt.
    In autoit bekomme ich das so schnell nicht hin, aber vielleicht hilft dir ja ein Ansatz?

  • _FileListToRekursiv Update: 08.07.2011

    • nuts
    • 20. April 2010 um 15:07

    Ist wirklich gut geworden. :thumbup:
    Wie wäre es noch mit mehreren Filtern gleichzeitig? Also z.B. .mp3 und .wma in einem Rutsch.
    Müsste durch eine Änderung um Zeile 68 eigentlich möglich sein.

    edit \ Die Funktion von Progandy (die ist wieder mal krass gut :thumbup: ) kann das ja schon.
    Bei der Variante von kleiner27 hab ichs jetzt auf die schnelle nicht hinbekommen, das Skript wirkt etwas wie nach dem Obfuskator :D

  • kann man eigentlich in einer listview sortieren?

    • nuts
    • 20. April 2010 um 11:13

    s. erstes Skript im Link.
    Du kannst abfragen auf welchen Header geklickt wurde.

  • Aus ini listview item erstellen

    • nuts
    • 20. April 2010 um 10:46

    Hab hier was mit Gruppen gepostet.
    [ offen ] Config bearbeiten und Config bearbeiten

    Dein Value (z.B. 81.0;1.01;2007-02-28 13:40:00;RK0;MUI;BS111ADDC4H) kannst du per Strinsplit teilen und für jeden Teilstring ein Subitem hinzufügen.

  • kann man eigentlich in einer listview sortieren?

    • nuts
    • 20. April 2010 um 10:43

    [ offen ] Listview - Sortierrichtung festlegen.

  • Config bearbeiten und Config bearbeiten

    • nuts
    • 19. April 2010 um 23:39

    Bsp:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <File.au3>

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

    Global $ini = @ScriptDir & "\dvb-tools.ini" ;Pfad zur ini

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

    $Form1 = GUICreate("Ini read to Listview - Beispiel", 700, 500, -1, -1)
    $ListView1 = GUICtrlCreateListView("", 20, 20, 660, 350)
    $hlistview = GUICtrlGetHandle($ListView1)
    _GUICtrlListView_AddColumn($hlistview, "Key", 200)
    _GUICtrlListView_AddColumn($hlistview, "Value", 450)

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

    $Button2 = GUICtrlCreateButton("Iniread", 20, 420, 120, 33, 0)
    $Button1 = GUICtrlCreateButton("Add", 220, 420, 120, 33, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button2
    _Initolistview($hlistview, $ini)
    Case $Button1
    _Add()
    EndSwitch
    WEnd

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

    Func _Initolistview($hwnd, $path)
    ; nuts (http://www.autoit.de)
    ; $hwnd = Handle to the listview
    ; $path = ini path
    Local $anames, $aread
    If Not IsHWnd($hwnd) Then
    SetError(1) ;not a handle -> @error = 1
    Return
    ElseIf Not FileExists($path) Then
    SetError(2) ;ini not found -> @error = 2
    Return
    EndIf
    $anames = IniReadSectionNames($path)
    $counter = -1;_GUICtrlListView_GetItemCount($hwnd)
    For $i = 1 To $anames[0]
    $aread = IniReadSection($path, $anames[$i])
    If @error Then
    $counter += 1
    _GUICtrlListView_EnableGroupView($hwnd)
    _GUICtrlListView_InsertGroup($hwnd, -1, $i, $anames[$i])
    _GUICtrlListView_AddItem($hwnd, "Kein Eintrag")
    _GUICtrlListView_SetItemGroupID($hwnd, $counter, $i)
    ContinueLoop
    EndIf
    _GUICtrlListView_EnableGroupView($hwnd)
    _GUICtrlListView_InsertGroup($hwnd, -1, $i, $anames[$i])
    For $x = 1 To $aread[0][0]
    $counter += 1
    _GUICtrlListView_AddItem($hwnd, $aread[$x][0])
    _GUICtrlListView_AddSubItem($hwnd, $counter, $aread[$x][1], 1)
    _GUICtrlListView_SetItemGroupID($hwnd, $counter, $i)
    Next

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

    Next
    EndFunc ;==>_Initolistview

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

    Func _Add()
    #region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Form1", 431, 200, 192, 124)
    $Input1 = GUICtrlCreateInput("", 40, 64, 113, 21)
    $Input2 = GUICtrlCreateInput("", 192, 64, 177, 21)
    $Label1 = GUICtrlCreateLabel("Key", 40, 32, 36, 17)
    $Label2 = GUICtrlCreateLabel("Value", 192, 32, 36, 17)
    $Button = GUICtrlCreateButton("Übernehmen", 140, 150, 120, 33, 0)
    GUISetState(@SW_HIDE, $Form1)
    GUISetState(@SW_SHOW, $Form2)
    #endregion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($Form2)
    GUISetState(@SW_SHOW, $Form1)
    ExitLoop
    case $Button
    local $count
    _GUICtrlListView_AddItem($hlistview,GUICtrlRead($Input1))
    local $count=_GUICtrlListView_GetItemCount($hlistview)-1
    _GUICtrlListView_AddSubItem($hlistview,$count,GUICtrlRead($Input1),1)
    _GUICtrlListView_SetItemGroupID($hlistview,$count,1)
    GUIDelete($Form2)
    GUISetState(@SW_SHOW, $Form1)
    ExitLoop
    EndSwitch
    WEnd
    EndFunc ;==>_Add

    [/autoit]


    Zu welcher Gruppe das neue Item hinzugefügt werden soll kann man auch Abfragen und z.B. per Combobox einstellen (fehlt mir jetzt die Zeit für ein Beispiel).

    Alternativ: Man liest den Wert der Inputs (oder wo sonst die Infos für den neuen Eintrag stehen) aus, speichert diese in die .ini (Iniwrite) und läd die ini erneut ins Listview. Ist vielleicht einfacher, meiner Meinung nach aber keine saubere Lösung.

  • Config bearbeiten und Config bearbeiten

    • nuts
    • 19. April 2010 um 23:16

    Natürlich ;) - woran scheiterts?

  • Config bearbeiten und Config bearbeiten

    • nuts
    • 19. April 2010 um 23:08

    Na klar geht das, einfach ein Item in die entsprechende Gruppe hinzufügen.
    _GUICtrlListView_InsertItem

  • Config bearbeiten und Config bearbeiten

    • nuts
    • 19. April 2010 um 22:59

    Hab hier was "cooles" um eine ini im Listview darzustellen, die Items können mit dem entsprechenden Style auch onthefly editiert werden.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <File.au3>

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

    global $ini = @ScriptDir & "\dvb-tools.ini" ;Pfad zur ini

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

    $Form1 = GUICreate("Ini read to Listview - Beispiel", 700, 500, -1, -1)
    $ListView1 = GUICtrlCreateListView("", 20, 20,660 , 350)
    $hlistview= GUICtrlGetHandle($ListView1)
    _GUICtrlListView_AddColumn($hListView, "Key", 200)
    _GUICtrlListView_AddColumn($hListView, "Value", 450)

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

    $Button2 = GUICtrlCreateButton("Iniread", 20, 420, 120, 33, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $Button2
    _Initolistview($hlistview, $ini)
    EndSwitch
    WEnd

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

    Func _Initolistview($hwnd, $path)
    ; nuts (http://www.autoit.de)
    ; $hwnd = Handle to the listview
    ; $path = ini path
    local $anames, $aread
    If not IsHWnd($hwnd) then
    SetError(1) ;not a handle -> @error = 1
    Return
    ElseIf not FileExists($path) then
    SetError(2) ;ini not found -> @error = 2
    Return
    endif
    $anames = IniReadSectionNames($path)
    $counter = -1;_GUICtrlListView_GetItemCount($hwnd)
    for $i = 1 to $anames[0]
    $aread = IniReadSection($path, $anames[$i])
    if @error then
    $counter+= 1
    _GUICtrlListView_EnableGroupView($hwnd)
    _GUICtrlListView_InsertGroup($hwnd, -1, $i, $anames[$i])
    _GUICtrlListView_AddItem($hwnd, "Kein Eintrag")
    _GUICtrlListView_SetItemGroupID($hwnd, $counter, $i)
    ContinueLoop
    endif
    _GUICtrlListView_EnableGroupView($hwnd)
    _GUICtrlListView_InsertGroup($hwnd, -1, $i, $anames[$i])
    for $x = 1 to $aread[0][0]
    $counter+= 1
    _GUICtrlListView_AddItem($hwnd, $aread[$x][0])
    _GUICtrlListView_AddSubItem($hwnd,$counter, $aread[$x][1],1)
    _GUICtrlListView_SetItemGroupID($hwnd, $counter, $i)
    next

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

    next
    endfunc

    [/autoit]
  • Mac Change 2

    • nuts
    • 19. April 2010 um 22:51

    Hm das ist schon immer die Microsoft Patentlösung gewesen :rofl:
    Ist doch Käse ... :rolleyes:

  • [Abstimmung] Multimedia-Wettbewerb

    • nuts
    • 19. April 2010 um 16:05

    Was darf man dafür alles verwenden?
    Der Player kann auf vielen Ansätzen aufbauen: Winamp, WMP Objekt, Bass.dll, den Soundfunktionen von Autoit

    Ich würde vielleicht einen Vollbildplayer auf Winampbasis abgeben.

  • Login-Eingaben mit [ ENTER ] abschließen

    • nuts
    • 19. April 2010 um 14:07

    -3 ist der Wert der Konstanten $GUI_EVENT_CLOSE ;)

  • 567 = 100%

    • nuts
    • 19. April 2010 um 13:40
    Zitat von autoitinstallermaker


    Allerdings kann ich ja schlecht dem Kompiler sagen 567 oder ähnliches sind 100%.


    Wieso nicht? ?(

    edit\ zu langsam :whistling:

  • Projektarbeit ;)

    • nuts
    • 18. April 2010 um 22:57

    Keine Ahnung wie weit ihr da eingestiegen seid, aber ein Rewe-Programm, dass nicht nur Demozwecken dienen soll, ist ein riesen Projekt.

    Vielleicht ist die Richtung Warenwirtschaft besser geeignet, damit spart man sich zumindest die gesetzliche Orientierung zur Gliederung und kann sich ganz auf den Informatikteil konzentrieren.

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™