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

Beiträge von NewProgger

  • Hilfe bei Array !

    • NewProgger
    • 10. Juli 2016 um 21:09

    autoBert, Dich mögen bestimmt ganz viele Menschen oder ? kleiner Stinkstiefel ! wie ich bereits schrieb möchte ich keine Radiobutton. Wenn es Dir nicht passt was ich möchte ja dann lies doch meinen Post nicht geschweige denn schreib hier rein!

    Oder hast DU meine Posts nicht gelesen ?

  • Hilfe bei Array !

    • NewProgger
    • 9. Juli 2016 um 00:16

    was wäre denn die bessere Lösung?

    die Var 1-21 stammen aus abfragen ob Checkboxen gechecked sind oder nicht.
    das heisst eine Var enthält entweder "ok" oder "Fehler: zum Thema xy wurden keine Angaben gemacht"

    wenn nun PflichtCheckboxen nicht ausgefüllt worden sind sollen diese aufgelistet werden welche es sind und dann Return zur GUI
    wenn alle auf OK stehen soll eine weiter Funktion ausgeführt werden. ( die beinhaltet den Datenimport in Excel etc.)

    es ist halt eine Fehlerabfrage.

  • Hilfe bei Array !

    • NewProgger
    • 8. Juli 2016 um 23:36
    Code
    # Prüfen ob alle checkboxen ausgefüllt wurden
    
    
    Func _check21($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21)
    
    
    local $array[] = [$1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21]
    Local $result1
    Local $result[21]
    
    
    For $i = UBound($array, 1) -1 to 0 Step -1
    	if  StringLeft($array[$i], 2) <> "Fe" Then
    		_ArrayDelete($result,$i)
    	Else
    		$result[$i] = $array[$i]
    	EndIf
    
    
    
    
    Next
    
    
    
    
    For $x = 0 To UBound($result, 1) -1
    	$result1 &= @CRLF & $result[$x]
    
    
    Next
    if $result1 = "" Then
    	ConsoleWrite($result1)
    	MsgBox(0, "", " Es fehlt was")
    Else
    	MsgBox(0, "", "alles ausgefüllt ")
    EndIf
    Alles anzeigen

    leider doch noch nicht fertig :thumbdown:

    Auch wenn keine Fehler mehr da sind geht er unten nicht in den else zweig...
    ich habe es schon mit isArray versucht und mit in einer schleife prüfen ob leere Felder da sind und dann mit arraydelet löschen lassen, hat alles nichts gebracht.

    kann mir das jemand erklären ?

  • Hilfe bei Array !

    • NewProgger
    • 8. Juli 2016 um 22:14

    Habe es selber hin bekommen :thumbup: so funktioniert es wie ich will.

    Danke für die Tipps, ohne die hätte es noch länger gedauert.

    Code
    # Prüfen ob alle checkboxen ausgefüllt wurden
    
    
    func _check21($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21)
    
    
    local $array[] = [$1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21], $a
    Local $result1
    Local $result[21]
    
    
    For $i = UBound($array, 1) -1 to 0 Step -1
    	if  StringLeft($array[$i], 2) <> "Fe" Then
    		_ArrayDelete($result,$i)
    	Else
    		$result[$i] = $array[$i]
    	EndIf
    
    
    #ConsoleWrite($result[$i])
    Next
    
    
    if 
    
    
    For $x = 0 To UBound($result, 1) -1
    	$result1 &= @CRLF & $result[$x]
    
    
    Next
    ConsoleWrite($result1)
    MsgBox(0, "", $result1)
    Alles anzeigen
  • Hilfe bei Array !

    • NewProgger
    • 8. Juli 2016 um 20:21
    Code
    # Prüfen ob alle checkboxen ausgefüllt wurden
    
    
    func _check21($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21)
    
    
    local $array[] = [$1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21], $a
    Local $result1
    Local $result[21]
    
    
    For $i = UBound($array, 1) -1 to 0 Step -1
    	$result[$i] = StringLeft($array[$i], 2)
    	if $result[$i] <> "fe" Then _ArrayDelete($result,$i)
    
    
    #ConsoleWrite($result[$i])
    Next
    For $x = 0 To UBound($result, 1) -1
    	$result1 &= @CRLF & $result[$x]
    	#ConsoleWrite($result[$x])
    Next
    MsgBox(0, "", $result1)
    Alles anzeigen

    Damit bekomme ich zumindest schon mal die angezeigt das Felder nicht ausgefüllt wurden, aber die Ausgabe ist logischweise "fe" da Stringleft...
    wie bekomme ich das denn nun hin das der ganze Text aus der Variable angezeigt wird ? auch an der richtigen pos. im array ? (nicht das Apfel fehlt und Banane angezeigt wird :D )

  • Hilfe bei Array !

    • NewProgger
    • 8. Juli 2016 um 17:15
    Zitat von Phil-IT

    kappiert. Ich würd es einfach so machen

    Zitat von Phil-IT

    Ich hoffe mal ich hab es jetzt kappiert. Ich würd es einfach so machen :thumbup::rolleyes:

    AutoIt
    $sUnchecked = "Es sind folgende Fehler aufgetreten:"
    For $i = 1 To 21
    	If Eval($i) = "fehler" Then
    		$sUnchecked &= @CRLF & "Fehler in $" & $i & ","
    	EndIf
    Next
    If $sUnchecked <> "Es sind folgende Fehler aufgetreten:" Then
    	MsgBox(0, "Fehler aufgetreten", StringTrimRight($sUnchecked, 1) & ".")
    EndIf


    also das funktioniert schon mal :thumbup:

    Fragen: (Verständnis Probleme)
    warum wird hier nicht der Inhalt von $i ausgegeben sondern die Nummer der Variable ?

    Code
    $sUnchecked &= @CRLF & "Fehler in $" & $i & ","

    angenommen $1 würde so aussehen $1 = "Fehler, es wurde bei Feld 5 kein Wert gesetzt"

    wie kann ich in dem Array trotzdem nach dem Wort Fehler sortieren und den Teil nach dem "," ausgeben ?

    geht das iwie mit StringLeft ?

    Code
    If StringLeft($i,6) = "fehler" Then # so scheinbar nicht
  • Hilfe bei Array !

    • NewProgger
    • 8. Juli 2016 um 15:16

    Sorry das ich mich nicht so klar ausdrücken konnte,

    viel einfacher:
    Das Ganze läuft schon, die GUI nebst Checkboxen etc. ist bereits erstellt, alles was ich brauche ist der weg wie ich aus den 21 Variablen nach dem wort fehler suchen kann und diese entsprechend ausgeben kann.

    in $1 steht das Ergebnis zu der folgenden Abfrage

    Code
    Case GUICtrlRead(44) = 1
         _check1("ok")
    Case Else
         _check1("fehler")

    ich will die 21 Variablen nur ausgewertet haben.

    - Array auswerten
    - msgbox ausgabe "es sind die folgenden Fehler aufgetreten

    msgbox
    - Fehler aus zum Beispiel $3
    - Fehler aus zum Beispiel $8
    - Fehler aus zum Beispiel $15

    etc.

    ich hoffe das bringt klarheit ?

    Danke und Gruß

    Flo

  • Hilfe bei Array !

    • NewProgger
    • 8. Juli 2016 um 07:43

    Das sind abfragen aus einem Formular (GUI) ob Checkboxen aktiviert sind. (Pflichtfelder) und die die nicht gewählt worden sind sollen später angezeigt werden.
    Nach dem Motto Sie haben zu X, Y, Z keine Angaben gemacht...

    Der Quellcode enthält teils brisante Daten, deshalb möchte ich den hier nicht Posten.

    kurzfassung ist:

    Code
    Func _Status_din()
    	For $i = 1 To UBound($din) - 1
    		If $din[$i] <> @GUI_CtrlId Then GUICtrlSetState($din[$i], $GUI_UNCHECKED)
    
    
    	Next
    
    
    EndFunc
    
    
    #######
    GUI
    
    
    #######
    
    
    For $i = 1 To UBound($din) - 1
    	GUICtrlSetOnEvent($din[$i], "_status_din")
    Next
    
    
    # Abfrage ob eine Din gesetzt ist
    Func _check()
    
    
    Select
    
    
    	Case GUICtrlRead(44) = 1
    		_check1("ok")
    	Case GUICtrlRead(45) = 1
    		_check1("ok")
    	Case GUICtrlRead(46) = 1
    		_check1("ok")
    	Case GUICtrlRead(47) = 1
    		_check1("ok")
    	Case GUICtrlRead(48) = 1
    		_check1("ok")
    	Case GUICtrlRead(49) = 1
    		_check1("ok")
    	Case GUICtrlRead(50) = 1
    		_check1("ok")
    	Case GUICtrlRead(51) = 1
    		_check1("ok")
    	Case GUICtrlRead(53) = 1
    		_check1("ok")
    	Case Else
    	     _check1("fehler")
    
    
    
    
    EndSelect
    EndFunc
    
    
    # die Anzahl der zu übergebenden Parameter steigt mit jeder abfrage es geht bis _check21()
    Alles anzeigen
  • Hilfe bei Array !

    • NewProgger
    • 8. Juli 2016 um 04:47

    Hallo zusammen,

    könnte mir bitte jemand helfen ?
    folgendes habe ich vor:

    Ich habe an eine Funktion 21 Parameter übergeben die entweder "ok" oder "fehler" beinhalten.
    jetzt möchte ich die, die "fehler" enthalten rausfiltern und in eine msgbox mit @CRLF ausgeben. Das Filtern habe ich schon per _Arrayfindall versucht, das hat auch geklappt aber eben nur über arraydisplay.

    Ich bin mit Array's nicht so gut habe meist die komplexere variante genommen aber jetzt hört der Spaß langsam auf. ;(
    Der Weg ist mir halbwegs klar Array erstellen, sortieren, etc.. aber an der Ausführung hapert es.

    Code
    local $array[] = [$1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21]


    Danke im voraus
    Flo

  • Checkboxen gegenseitig ausschließen

    • NewProgger
    • 5. Juli 2016 um 18:44
    Zitat von autoBert

    Scheiß auf das Layout, die Funktionalität zählt und mit deinem (für dich) Superlayout kommen nur dumme Fragen, denn

    Checkbox=Mehfachauswahl möglich, Radio=nur eine Antwort möglich. Man sollte Windowscontrols so verwenden wie sie vorgesehen sind, alles andere verunsichert nur den Anwender.

    ???


    Tweaky's antwort hat genau das Problem gelöst. Es geht jetzt lediglich um "Fine tuning" die "Funktionalität" ist auf jeden Fall gegeben.

  • Checkboxen gegenseitig ausschließen

    • NewProgger
    • 5. Juli 2016 um 00:51

    Danke erstmal für Deine Hilfe, dass hat mir SEHR geholfen :)

    Das ganze gedöns soll nachher in Excel exportiert werden, das vorgehen ist auch soweit klar.

    Im folgenden schreibe ich die ControlID die gechecked ist in eine Variable damit ich nicht jede Checkbox abfragen muss.
    Nun ist es aber so, dass wenn ich die Box checke und wieder unchecke bleibt in der $status die ID von der zuvor gecheckten.

    Code
    Func _Status_din()
    	For $i = 1 To UBound($din) - 1
    		If $din[$i] <> @GUI_CtrlId Then GUICtrlSetState($din[$i], $GUI_UNCHECKED)
    		if $din[$i] == @GUI_CtrlId Then $status = $din[$i]
    	Next
    
    
    EndFunc

    hast Du evtl. dafür eine Lösung ?

  • Checkboxen gegenseitig ausschließen

    • NewProgger
    • 3. Juli 2016 um 21:53

    ist ist super, da ich aber mehrere Kategorien habe, wäre das hier eine gute Lösung oder wäre das zu cpu lastig ?


    AutoIt
    #Region ;************ Includes ************
    #include <GUIConstantsEx.au3>
    #EndRegion ;************ Includes ************
    Opt("GUIOnEventMode", 1) ;0=disabled, 1=OnEvent mode enabled
    Global $aCheckbox[100],$bCheckbox[100]
    GUICreate("Test", 200, 200)
    GUIStartGroup()
    $aCheckbox[1] = GUICtrlCreateCheckbox("Text 1", 10, 10)
    $aCheckbox[2] = GUICtrlCreateCheckbox("Text 2", 10, 40)
    $aCheckbox[3] = GUICtrlCreateCheckbox("Text 3", 10, 70)
    $bCheckbox[4] = GUICtrlCreateCheckbox("Text 4", 10, 100)
    $bCheckbox[5] = GUICtrlCreateCheckbox("Text 5", 10, 130)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_beenden")
    For $i = 1 To UBound($aCheckbox) - 1
    	GUICtrlSetOnEvent($aCheckbox[$i], "_status")
    Next
    For $i = 1 To UBound($bCheckbox) - 1
    	GUICtrlSetOnEvent($bCheckbox[$i], "_status1")
    Next
    GUISetState()
    While 1
    	Sleep(10)
    WEnd
    Func _Status()
    	For $i = 1 To UBound($aCheckbox) - 1
    		If $aCheckbox[$i] <> @GUI_CtrlId Then GUICtrlSetState($aCheckbox[$i], $GUI_UNCHECKED)
    	Next
    EndFunc   ;==>_Status
    Func _Status1()
    	For $i = 1 To UBound($bCheckbox) - 1
    		If $bCheckbox[$i] <> @GUI_CtrlId Then GUICtrlSetState($bCheckbox[$i], $GUI_UNCHECKED)
    	Next
    EndFunc
    Func _beenden()
    	Exit
    EndFunc   ;==>_beenden
    Alles anzeigen

    das nächste wäre dann halt cCheckox usw.

  • Checkboxen gegenseitig ausschließen

    • NewProgger
    • 3. Juli 2016 um 20:04

    Ich erkläre mal kurz was ich vor habe damit es verständlicher wird.
    Ich bilde ein Formular ab (eine Art Fragebogen) d.h. eine GUI mit inputs edit Feldern und vielen Checkboxen.

    Bei einigen Themen ist es möglich eine Mehrfachauswahl zu treffen, bei anderen nicht. Damit das Layout gleich bleibt will ich nicht Radio und Checkboxen vermischen. Deshalb die Frage wie ich ein Radiobutton verhalten mit Checkboxen hin bekomme.
    Am Ende wird das ganze dann nach Excel exportiert.

  • Checkboxen gegenseitig ausschließen

    • NewProgger
    • 3. Juli 2016 um 19:12

    ist es bei den Radiobutton auch möglich mehrere zu aktivieren ?

  • Checkboxen gegenseitig ausschließen

    • NewProgger
    • 3. Juli 2016 um 18:55

    Hallo zusammen,

    das ist bestimmt mal wieder ganz simpel zu lösen aber ich habe derzeit leider keine Idee und finde auch im Netz nicht das richtige...

    Also ich habe 9 Checkboxen und es darf immer nur eine aktiv sein. Sobald man eine Box klickt muss der Haken aus der anderen verschwinden.
    Hier mein erster Ansatz, der ist aber nicht sehr schön da man nur von unten nach oben frei wählen kann. Andersrum sind alle Boxen gesperrt und man muss erst die oberste "frei" klicken.


    AutoIt
    if GUICtrlRead($din1) = 1 Then
    	GUICtrlSetState($din2, $GUI_UNCHECKED)
    	GUICtrlSetState($din3, $GUI_UNCHECKED)
    	GUICtrlSetState($din4, $GUI_UNCHECKED)
    	GUICtrlSetState($din5, $GUI_UNCHECKED)
    	GUICtrlSetState($din6, $GUI_UNCHECKED)
    	GUICtrlSetState($din7, $GUI_UNCHECKED)
    	GUICtrlSetState($din8, $GUI_UNCHECKED)
    	GUICtrlSetState($din9, $GUI_UNCHECKED)
    ElseIf GUICtrlRead($din2) = 1 Then
    	GUICtrlSetState($din1, $GUI_UNCHECKED)
    	GUICtrlSetState($din3, $GUI_UNCHECKED)
    	GUICtrlSetState($din4, $GUI_UNCHECKED)
    	GUICtrlSetState($din5, $GUI_UNCHECKED)
    	GUICtrlSetState($din6, $GUI_UNCHECKED)
    	GUICtrlSetState($din7, $GUI_UNCHECKED)
    	GUICtrlSetState($din8, $GUI_UNCHECKED)
    	GUICtrlSetState($din9, $GUI_UNCHECKED)
    ElseIf GUICtrlRead($din3) = 1 Then
    	GUICtrlSetState($din1, $GUI_UNCHECKED)
    	GUICtrlSetState($din2, $GUI_UNCHECKED)
    	GUICtrlSetState($din4, $GUI_UNCHECKED)
    	GUICtrlSetState($din5, $GUI_UNCHECKED)
    	GUICtrlSetState($din6, $GUI_UNCHECKED)
    	GUICtrlSetState($din7, $GUI_UNCHECKED)
    	GUICtrlSetState($din8, $GUI_UNCHECKED)
    	GUICtrlSetState($din9, $GUI_UNCHECKED)
    
    
    ..... usw. :-(
    Alles anzeigen

    da hat doch bestimmt jemand eine bessere Lösung oder ?

    vielen Dank im voraus

    Flo

  • __FFStartProcess ==> General Error: Error reading registry entry for FireFox.

    • NewProgger
    • 30. Januar 2015 um 12:58

    hat hierfür keiner eine Lösung ?

  • Winwaitactiv timeout problem

    • NewProgger
    • 26. November 2014 um 20:45

    Danke Schnuffel für die Erklärung, jetzt macht es Sinn und ich komme endlich weiter. :)

  • Winwaitactiv timeout problem

    • NewProgger
    • 26. November 2014 um 09:38

    Hallo,

    ich habe das Problem das in einer Function mit WinWaitActiv der timeout ja error 0 ausgeben soll wenn er in diesen läuft.
    nun habe ich danach ein Return eingebaut wenn der timeout greift, aber das Funktioniert nicht weil error immer auf 0 steht...

    selbst wenn ich am anfang der Function seterror auf 1 oder was auch immer stelle geht er in der nächsten zeile gleich wieder auf 0

    Warum ? wie kann ich das Problem lösen ? nehme ich die if @error abfrage raus dann läuft es durch.


    [autoit]


    Func close()
    SetError(1)

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

    ConsoleWrite("Errorcode1 " & @error & @CRLF) <----- error 1

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

    _au3recordsetup()
    _ffconnect()
    If _ffisconnected() Then
    $url = _fftabgetselected("label")
    $ff = $url & " - Mozilla Firefox"
    EndIf
    WinSetState($ff, "", @SW_MAXIMIZE)
    Send("{HOME}")

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

    ConsoleWrite("Errorcode2 " & @error & @CRLF) <---- error 0

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

    WinWaitActive($ff, "", 3)

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

    ConsoleWrite("Errorcode3 " & @error & @CRLF) <---- error 0

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

    if @error = 0 then Return

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

    ConsoleWrite("Errorcode4 " & @error & @CRLF) <---- error 0

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

    $ff1 = StringLeft($url, 16)
    MouseClick("left", 1173, 289, 1)
    WinWaitActive($ff1 & " - Schließen - Ticket - OTRS ITSM 3.2.9 - Mozilla Firefox", "", 3)
    if @error=0 then Return
    MouseClick("left", 309, 300, 1)
    Send(".")
    MouseClick("left", 321, 472, 1)
    MouseClick("left", 305, 525, 1)
    MouseClick("left", 519, 568, 1)
    EndFunc

    [/autoit]
  • Fertige Mailvorlage (.oft) per Outlook UDF versenden

    • NewProgger
    • 17. November 2014 um 10:03

    Hallo zusammen,

    kann mir jemand erklären wie man abgespeicherte Vorlagen Pfad \\Server\Ordner1\ordner2\vorlage.oft und einer gespeicherten Signatur versenden kann ?
    also klar mit dem Outlook UDF, aber wie genau mit welcher Funktion etc.

    Danke und Gruß
    Florian

  • Outlook UDF nicht vorhandene User Filtern

    • NewProgger
    • 30. September 2014 um 09:40

    jetzt Funktioniert alles :thumbup:

    Danke Water

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™