Darum gehts hier aber nicht
(s. Fehlerbeschreibung Post3)
Beiträge von nuts
-
-
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <File.au3>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)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$ListView1 = GUICtrlCreateListView("", 20, 20,660 , 350)
$hlistview= GUICtrlGetHandle($ListView1)
_GUICtrlListView_AddColumn($hListView, "Key", 200)
_GUICtrlListView_AddColumn($hListView, "Value", 450)$Button2 = GUICtrlCreateButton("Iniread", 20, 420, 120, 33, 0)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Button2
_Initolistview($hlistview, $ini)
EndSwitch
WEndFunc _Initolistview($hwnd, $path)
[/autoit] [autoit][/autoit] [autoit]
; 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
nextnext
[/autoit]
endfunc
In Zeile 46. -
Schau mal hier rein: http://www.delphigl.com/forum/viewtopic.php?f=30&t=8346
Mein vorgeschlagener Weg scheint zum Ziel zu führen.
Ob der Punkt im Dreieck liegt prüft man mit folgenden Bedingungen:
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

-
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 ...
-
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
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
Wo steckt denn UEZ?
-
Scheiterts an der Mathe (kannst du doch viel besser als ich ...
) 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:
=> auflösen nach t
=> in Geradengleichung einsetzen
=> ergibt den DurchstoßpunktP.S. So ca. Matheabi ist schon 5 Jahre her

-
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? -
Ist wirklich gut geworden.
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
) 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
-
s. erstes Skript im Link.
Du kannst abfragen auf welchen Header geklickt wurde. -
Hab hier was mit Gruppen gepostet.
[ offen ] Config bearbeiten und Config bearbeitenDein 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.
-
-
Bsp:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <File.au3>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)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$ListView1 = GUICtrlCreateListView("", 20, 20, 660, 350)
$hlistview = GUICtrlGetHandle($ListView1)
_GUICtrlListView_AddColumn($hlistview, "Key", 200)
_GUICtrlListView_AddColumn($hlistview, "Value", 450)$Button2 = GUICtrlCreateButton("Iniread", 20, 420, 120, 33, 0)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Button1 = GUICtrlCreateButton("Add", 220, 420, 120, 33, 0)
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button2
_Initolistview($hlistview, $ini)
Case $Button1
_Add()
EndSwitch
WEndFunc _Initolistview($hwnd, $path)
[/autoit] [autoit][/autoit] [autoit]
; 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)
NextNext
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_InitolistviewFunc _Add()
[/autoit] [autoit][/autoit] [autoit]
#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 ###While 1
[/autoit]
$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
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.
-
Natürlich
- woran scheiterts? -
Na klar geht das, einfach ein Item in die entsprechende Gruppe hinzufügen.
_GUICtrlListView_InsertItem -
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]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <File.au3>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)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$ListView1 = GUICtrlCreateListView("", 20, 20,660 , 350)
$hlistview= GUICtrlGetHandle($ListView1)
_GUICtrlListView_AddColumn($hListView, "Key", 200)
_GUICtrlListView_AddColumn($hListView, "Value", 450)$Button2 = GUICtrlCreateButton("Iniread", 20, 420, 120, 33, 0)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Button2
_Initolistview($hlistview, $ini)
EndSwitch
WEndFunc _Initolistview($hwnd, $path)
[/autoit] [autoit][/autoit] [autoit]
; 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)
nextnext
[/autoit]
endfunc -
Hm das ist schon immer die Microsoft Patentlösung gewesen
Ist doch Käse ...
-
Was darf man dafür alles verwenden?
Der Player kann auf vielen Ansätzen aufbauen: Winamp, WMP Objekt, Bass.dll, den Soundfunktionen von AutoitIch würde vielleicht einen Vollbildplayer auf Winampbasis abgeben.
-
-3 ist der Wert der Konstanten $GUI_EVENT_CLOSE

-
Allerdings kann ich ja schlecht dem Kompiler sagen 567 oder ähnliches sind 100%.
Wieso nicht?
edit\ zu langsam

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