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

Beiträge von Stoani

  • Custom GUI, Image Buttons, Overlapping

    • Stoani
    • 24. Januar 2017 um 01:24

    Hallo liebe Leute,

    das Programm wird nun doch eher online laufen und in html, css und javascript umgesetzt.

    Es ist zwar noch lange nicht fertig, aber ihr könnt es euch gerne und http://terminal.rkgm.at/index.html ansehen.

    Trotzdem danke für die Hilfe!

    lg Stoani
    #Closed

  • Custom GUI, Image Buttons, Overlapping

    • Stoani
    • 13. Januar 2017 um 12:26

    Pfeift, mach ich. (beides) ;)

  • Custom GUI, Image Buttons, Overlapping

    • Stoani
    • 13. Januar 2017 um 10:14

    Hey Kanashius,
    schaut richtig geil aus und geht genau in diese Stilrichtung!

    Eine Frage bleibt aber noch:
    Brauch ich die "GUICtrlOnHover.au3" als Include?
    Die ist nämlich nicht im Skript glaub ich... kann auch sein dass ich mich täusche, erster Kaffee und soooo... ;)


    Hui so schnell.. genau in dem moment gepostet @Oscar
    Danke für das Example.au3, ich werds mir auf der Zunge zergehen lasssen! :)

  • Custom GUI, Image Buttons, Overlapping

    • Stoani
    • 12. Januar 2017 um 20:39

    Wäre einen Versuch wert! Danke für den Tipp, dann werd ich mal google gquälen.

  • Custom GUI, Image Buttons, Overlapping

    • Stoani
    • 12. Januar 2017 um 20:31

    Ahhh jetzt check ichs erst.... Nöööö nicht rechteckig lassen... Ich will doch das Terminal simulieren, dann soll es auch gleich aussehen ;)

    So als aller aller aller letzte Option vielleicht...

  • Custom GUI, Image Buttons, Overlapping

    • Stoani
    • 12. Januar 2017 um 19:04

    Meinst du so:

    [Blockierte Grafik: https://i.imgsafe.org/7c49f8d464.png]

    Die grünen wären dann die zu überprüfenden mini Buttons?

  • Custom GUI, Image Buttons, Overlapping

    • Stoani
    • 12. Januar 2017 um 18:23

    ### UPDATE SEKTION ###

    Link: http://terminal.rkgm.at/index.html


    #CLOSED


    Ältere Versionen
    Datenfunk.zip Version 0.1 [Dropbox]
    Datenfunk.zip Version 0.2 [Dropbox]
    Datenfunk.zip Version 0.3 [Dropbox]
    Datenfunk.zip Version 0.4 [Dropbox]

    Neueste Version
    Datenfunk.zip Version 0.5 [Dropbox]


    Zur Veranschaulichung hier ein Bild des Originals:
    [Blockierte Grafik: https://i.imgsafe.org/8e8214e837.jpg]

    GUI von Version 0.4
    [Blockierte Grafik: https://i.imgsafe.org/8eb4dc42ca.png]


    Source passend zu Version 0.4

    AutoIt: Version 0.5
    ; VIELEN DANK AN (www.autoit.de):
    ; Oscar | alpines | Kanashius | UEZ und ein bisschen Großvater!
    
    
    
    
    
    
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    
    
    Global Const $SC_DRAGMOVE = 0xF012
    Global $sGfxFolder = (@ScriptDir & "\gfx\")
    Global $hMainGui = _GUICreate_Transparent($sGfxFolder & "terminal.png")
    Global $aWinPos = WinGetPos($hMainGui)
    
    
    Global $aNaviFiles[22]
    $aNaviFiles[0] = "top_0"
    $aNaviFiles[1] = "top_1"
    
    
    $aNaviFiles[2] = "bottom_0"
    $aNaviFiles[3] = "bottom_1"
    
    
    $aNaviFiles[4] = "left_0"
    $aNaviFiles[5] = "left_1"
    
    
    $aNaviFiles[6] = "right_0"
    $aNaviFiles[7] = "right_1"
    
    
    $aNaviFiles[8] = "button_0"
    $aNaviFiles[9] = "button_1"
    
    
    $aNaviFiles[10] = "exit_0"
    $aNaviFiles[11] = "exit_1"
    
    
    $aNaviFiles[12] = "new_0"
    $aNaviFiles[13] = "new_1"
    
    
    $aNaviFiles[14] = "status_6_0"
    $aNaviFiles[15] = "status_6_1"
    
    
    $aNaviFiles[16] = "status_14_0"
    $aNaviFiles[17] = "status_14_1"
    
    
    $aNaviFiles[18] = "status_0_0"
    $aNaviFiles[19] = "status_0_1"
    
    
    $aNaviFiles[20] = "status_9_0"
    $aNaviFiles[21] = "status_9_1"
    
    
    
    
    ;################## Koordinaten #####################
    Global $aNaviCoord[22][2]
    
    
    ;Top
    $aNaviCoord[0][0] = 811
    $aNaviCoord[0][1] = 324
    $aNaviCoord[1][0] = 811
    $aNaviCoord[1][1] = 324
    
    
    ;Bottom
    $aNaviCoord[2][0] = 811
    $aNaviCoord[2][1] = 417
    $aNaviCoord[3][0] = 811
    $aNaviCoord[3][1] = 417
    
    
    ;Left
    $aNaviCoord[4][0] = 790
    $aNaviCoord[4][1] = 345
    $aNaviCoord[5][0] = 790
    $aNaviCoord[5][1] = 345
    
    
    ;Right
    $aNaviCoord[6][0] = 883
    $aNaviCoord[6][1] = 345
    $aNaviCoord[7][0] = 883
    $aNaviCoord[7][1] = 345
    
    
    ;Button
    $aNaviCoord[8][0] = 828
    $aNaviCoord[8][1] = 362
    $aNaviCoord[9][0] = 828
    $aNaviCoord[9][1] = 362
    
    
    ;Exit
    $aNaviCoord[10][0] = 828
    $aNaviCoord[10][1] = -50
    $aNaviCoord[11][0] = 828
    $aNaviCoord[11][1] = -50
    
    
    ;Neuer Auftrag
    $aNaviCoord[12][0] = 655
    $aNaviCoord[12][1] = -50
    $aNaviCoord[13][0] = 655
    $aNaviCoord[13][1] = -50
    
    
    ;Status 6
    $aNaviCoord[14][0] = 572
    $aNaviCoord[14][1] = 46
    $aNaviCoord[15][0] = 572
    $aNaviCoord[15][1] = 46
    
    
    ;Status 14
    $aNaviCoord[16][0] = 572
    $aNaviCoord[16][1] = 154
    $aNaviCoord[17][0] = 572
    $aNaviCoord[17][1] = 154
    
    
    ;Status 0
    $aNaviCoord[18][0] = 572
    $aNaviCoord[18][1] = 262
    $aNaviCoord[19][0] = 572
    $aNaviCoord[19][1] = 262
    
    
    ;Status 9
    $aNaviCoord[20][0] = 572
    $aNaviCoord[20][1] = 370
    $aNaviCoord[21][0] = 572
    $aNaviCoord[21][1] = 370
    
    
    Global $iNaviCount = UBound($aNaviFiles)
    Global $ahNavi[$iNaviCount]
    
    
    For $i = 0 To $iNaviCount - 1
    	$ahNavi[$i] = _GUICreate_Transparent($sGfxFolder & $aNaviFiles[$i] & ".png", -1, -1, 255, $WS_EX_LAYERED + $WS_EX_TOPMOST + $WS_EX_MDICHILD, $hMainGui)
    	WinMove($ahNavi[$i], "", $aWinPos[0] + $aNaviCoord[$i][0], $aWinPos[1] + $aNaviCoord[$i][1])
    	GUISetCursor(0, -1, $ahNavi[$i])
    Next
    For $i = 0 To $iNaviCount - 1 Step 2
    	GUISetState(@SW_SHOW, $ahNavi[$i])
    Next
    GUISetState(@SW_SHOW, $hMainGui)
    GUIRegisterMsg($WM_LBUTTONDOWN, "_WM_LBUTTONDOWN")
    Global $g_tStruct = DllStructCreate($tagPOINT)
    Global $aMsg, $iOld = -1, $hHover
    While True
    	$aMsg = GUIGetMsg(1)
    	Switch $aMsg[0]
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $GUI_EVENT_MOUSEMOVE
    			DllStructSetData($g_tStruct, "x", MouseGetPos(0))
    			DllStructSetData($g_tStruct, "y", MouseGetPos(1))
    			$hHover = _WinAPI_WindowFromPoint($g_tStruct)
    			If $hHover = $hMainGui Then
    				If $iOld > -1 Then GUISetState(@SW_SHOW, $ahNavi[$iOld])
    				$iOld = -1
    			EndIf
    			For $i = 0 To 20 Step 2
    				If $hHover = $ahNavi[$i] Then
    					GUISetState(@SW_HIDE, $ahNavi[$i])
    					GUISetState(@SW_SHOW, $ahNavi[$i + 1])
    					If $iOld > -1 Then GUISetState(@SW_SHOW, $ahNavi[$iOld])
    					$iOld = $i
    					ExitLoop
    				EndIf
    			Next
    	EndSwitch
    WEnd
    
    
    Func _WM_LBUTTONDOWN($hWnd, $iMsg, $wParam, $lParam)
    	If $iOld > -1 Then
    		Local $sNavi = StringTrimRight($aNaviFiles[$iOld], 2)
    		ConsoleWrite($sNavi & @CR)
    
    
    
    
    
    
    		If $sNavi = "exit" Then
    			_Exit()
    		ElseIf $sNavi = "new" Then
    			_New()
    		ElseIf $sNavi = "top" Then
    			_Top()
    		ElseIf $sNavi = "bottom" Then
    			_Bottom()
    		ElseIf $sNavi = "right" Then
    			_Right()
    		ElseIf $sNavi = "left" Then
    			_Left()
    		ElseIf $sNavi = "button" Then
    			_Button()
    		ElseIf $sNavi = "status_6" Then
    			_Status_6()
    		ElseIf $sNavi = "status_14" Then
    			_Status_14()
    		ElseIf $sNavi = "status_0" Then
    			_Status_0()
    		ElseIf $sNavi = "status_9" Then
    			_Status_9()
    		EndIf
    
    
    		Return
    
    
    	EndIf
    	_SendMessage($hMainGui, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0)
    EndFunc   ;==>_WM_LBUTTONDOWN
    
    
    Func _Exit()
    	Exit
    EndFunc   ;==>_Exit
    
    
    Func _New()
    
    
    EndFunc   ;==>_New
    
    
    Func _Top()
    
    
    EndFunc   ;==>_Top
    
    
    Func _Bottom()
    
    
    EndFunc   ;==>_Bottom
    
    
    Func _Right()
    
    
    EndFunc   ;==>_Right
    
    
    Func _Left()
    
    
    EndFunc   ;==>_Left
    
    
    Func _Button()
    
    
    EndFunc   ;==>_Button
    
    
    Func _Status_6()
    
    
    EndFunc
    
    
    Func _Status_14()
    
    
    EndFunc
    
    
    Func _Status_0()
    
    
    EndFunc
    
    
    Func _Status_9()
    
    
    EndFunc
    
    
    
    
    ; #INDEX# =======================================================================================================================
    ; Title .........: GUICreateTransparent
    ; AutoIt Version : 3.3.6.1
    ; Description ...: Transparente BildGUIs erstellen.
    ; Author(s) .....: UEZ und ein bisschen Großvater (www.autoit.de)
    ; Dll ...........:
    ; ===============================================================================================================================
    
    
    ; #CURRENT# =====================================================================================================================
    ; _GUICreate_Transparent
    ; ===============================================================================================================================
    
    
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _GUICreate_Transparent
    ; Description ...: Transparente Popup-GUIs aus Bildern (z.B. PNG) erstellen
    ; Syntax.........: _GUICreate_Transparent($sImage, $iLeft = -1, $iTop = -1, $iOpacity = 255)
    ; Parameters ....: $sImage   - Pfad zur Bilddatei
    ;                  $iLeft    - Bidschirmposition der linken Seite des GUI in Pixeln
    ;                  |Default  - -1 (zentriert)
    ;                  $iTop     - Bidschirmposition der oberen Seite des GUI in Pixeln
    ;                  |Default  - -1 (zentriert)
    ;                  $iOpacity - Transparenz für das gesamte GUI (siehe WinSetTrans())
    ;                  |Default  - 255 (nicht transparent)
    ; Return values .: Im Erfolgsfall: HWND des GUI aus GUICreate()
    ;                  Im Fehlerfall: False, @error wird gesetzt:
    ;                  |1 = GDIPlus konnte nicht gestartet werden
    ;                  |2 = Die Bilddatei konnte nicht geladen werden
    ; Author ........: UEZ (www.autoit.de/index.php?page=Thread&postID=199839#post199839)
    ; Modified.......: Großvater (www.autoit.de)
    ; Remarks .......: Das GUI wird immer in der Originalgröße des Bildes mit dem Style $WS_POPUP und dem
    ;                  Exstyle $WS_EX_LAYERED erstellt. Der Exstyle $WS_EX_LAYERED verträgt sich offenbar
    ;                  nicht mit normalen Child-GUIs. Controls müssen deshalb in (einer) eigenen GUI(s)
    ;                  mit den Exstyles $WS_EX_MDICHILD und $WS_EX_LAYERED und der HWND des Bild-GUI
    ;                  als Parent erstellt werden. Dafür liefert UEZ im o.a. Thread ein Beispiel.
    ; Related .......:
    ; Link ..........:
    ; Example .......:
    ; ===============================================================================================================================
    Func _GUICreate_Transparent($sImage, $iLeft = -1, $iTop = -1, $iOpacity = 255, $iExStyle = $WS_EX_LAYERED + $WS_EX_TOPMOST, $hParent = 0)
    	; GDIPlus starten
    	If Not _GDIPlus_Startup() Then Return SetError(1, 0, 0)
    	; Bild laden
    	Local $hImage = _GDIPlus_ImageLoadFromFile($sImage)
    	If @error Then
    		_GDIPlus_Shutdown()
    		Return SetError(2, 0, 0)
    	EndIf
    	Local $iWidth = _GDIPlus_ImageGetWidth($hImage)
    	Local $iHeight = _GDIPlus_ImageGetHeight($hImage)
    	; GUI erstellen
    	Local $hGUI = GUICreate("", $iWidth, $iHeight, $iLeft, $iTop, $WS_POPUP, $iExStyle, $hParent)
    	Local $hDCDst = _WinAPI_GetDC($hGUI)
    	Local $hDCSrc = _WinAPI_CreateCompatibleDC($hDCDst)
    	Local $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    	_WinAPI_SelectObject($hDCSrc, $hBitmap)
    	Local $tSize = DllStructCreate($tagSIZE)
    	Local $pSize = DllStructGetPtr($tSize)
    	DllStructSetData($tSize, "X", $iWidth)
    	DllStructSetData($tSize, "Y", $iHeight)
    	Local $tSource = DllStructCreate($tagPOINT)
    	Local $pSource = DllStructGetPtr($tSource)
    	Local $tBlend = DllStructCreate($tagBLENDFUNCTION)
    	Local $pBlend = DllStructGetPtr($tBlend)
    	DllStructSetData($tBlend, "Alpha", $iOpacity)
    	DllStructSetData($tBlend, "Format", 1)
    	_WinAPI_UpdateLayeredWindow($hGUI, $hDCDst, 0, $pSize, $hDCSrc, $pSource, 0, $pBlend, $ULW_ALPHA)
    	; Ressourcen freigeben
    	_GDIPlus_ImageDispose($hImage)
    	_WinAPI_DeleteObject($hBitmap)
    	_WinAPI_DeleteDC($hDCSrc)
    	_WinAPI_ReleaseDC($hGUI, $hDCDst)
    	_GDIPlus_Shutdown()
    	; HWND des GUI zurückgeben
    	Return $hGUI
    EndFunc   ;==>_GUICreate_Transparent
    Alles anzeigen


    ######################################
    ############ Original Post ##############
    ######################################
    Hallo liebe Leute,

    ich bins mal wieder :whistling:

    Derzeit bin ich an einem neuen Projekt, da das letzte leider im Sand verlaufen ist.

    Also, es geht um ein Programm, welches die Einschulung auf ein Datenfunk-Terminal erleichtern soll.
    Dabei wird ein Terminal simuliert und es können verschiedene Aufträge / Szenarien simuliert werden.

    Nun ist es allerdings schon so, dass ich in der Anfangsphase schon vor einem Problem stehe und einfach nicht genug Hintergrundwissen habe, wenn es um GDI+, Interlaced Images und Image Buttons geht.

    Hier sieht man nun das fertige Terminal-Image.
    [Blockierte Grafik: https://i.imgsafe.org/7ba6ae0fe2.png]
    Bedienelemte:

    Button_Center (Aktiv und Inaktiv)
    [Blockierte Grafik: https://i.imgsafe.org/7bada4e417.png][Blockierte Grafik: https://i.imgsafe.org/7badae750f.png]

    Button_Links/Rechts/Oben/Unten (Aktiv und Inaktiv)
    [Blockierte Grafik: https://i.imgsafe.org/7badb6daac.png][Blockierte Grafik: https://i.imgsafe.org/7badc10a99.png][Blockierte Grafik: https://i.imgsafe.org/7bbd865004.png][Blockierte Grafik: https://i.imgsafe.org/7bbd8c15d6.png][Blockierte Grafik: https://i.imgsafe.org/7bbd91f5f2.png][Blockierte Grafik: https://i.imgsafe.org/7bbda6f003.png][Blockierte Grafik: https://i.imgsafe.org/7bbda1a809.png][Blockierte Grafik: https://i.imgsafe.org/7bbd9b6890.png]


    Nun hab ich allerdings das Problem, dass sich durch die Viertelkreis-Form der Buttons die Bilder überschneiden/überlappen.


    Hier nochmal das Background - Image, welches später quasi als GUI dienen soll:
    [Blockierte Grafik: https://i.imgsafe.org/7be5b40c79.png]

    Ich habs mal mit der Skin UDF von Yashied probiert und leider auch nicht wirklich auf einen grünen Zweig gekommen...
    (Ja ich hab auch die Alpha_Images erstellt)

    Eigentlich würde ich ja auch lieber die GUI ohne Fensterrahmen machen. Aber dem Problem stelle ich mich erst, wenn ich die Buttons im Griff habe.


    Ja ich weiß, es gibt zu dem Thema viel Stoff der schon bearbeitet wurde, allerdings hab ich nicht gefunden, was auch wirklich meinen Vorstellungen entspricht.
    Ich hab die Dateien alle als [.ai | .psb | .bmp | .png].


    Würd mich freuen, wenn jemand einen guten Vorschlag zur Umsetzung hätte! :thumbup:

    Lg Stoani

  • Dienst - Suche - Programm, Verbesserungsvorschläge.

    • Stoani
    • 13. November 2016 um 11:18
    Zitat von Andy

    ein Zettel! Ein ZETTEL! OMFG, wirr haben völlig vergessen, dass die Mitarbeiter sich personenbezogene Daten AUFSCHREIBEN können

    Naja, wir haben auch alle eine umfassende Verschwiegenheitserklärung unterzeichnet, so ist es nicht ;)

  • Dienst - Suche - Programm, Verbesserungsvorschläge.

    • Stoani
    • 11. November 2016 um 18:19

    @autoiter hatte ich auch so geplant, einfach in einen Datei (z.b. ini, excel, txt. was auch immer) abspeichern und beim nächsten start die Möglichkeit zum laden geben.

    @gmmg ich versuch mein bestes um einen zugang zu den Daten zu bekommen, ist halt von zu hause aus etwas schwer... Danke für den Vorschlag, werds mir ansehen.

  • Dienst - Suche - Programm, Verbesserungsvorschläge.

    • Stoani
    • 11. November 2016 um 07:20

    Wow, danke Bert. Motivierende Worte.

    Ich beschreibe die Situation mal ganz kurz zum besseren Verständnis.

    Wir haben ein System, allerdings ist diese Software veraltet bzw. nicht für die aktive Suche nach Ressourcen zum Füllen der Löcher gedacht.
    Man verwendet also insgesamt 3 Varianten der Dienstsuche:

    • SMS - Verteiler an alle eingetragenen Nummern (ca. 150) z.B.: "Für Samstag TD wird noch ein EL benötigt, bitte anrufen oder online eintragen."
    • Online Dienstplan: Hier können sich Mitarbeiter jederzeit in den "Pool" eintragen um eine offene Planposition zu besetzen. (https://dienstplan.o.roteskreuz.at) (RPS)
    • Der anstrengendste Weg und leider immer häufiger: Telefonliste aller Mitarbeiter durchtelefonieren um eine Planposition zu besetzen (wenn zb. 1-2 Tage vorher noch immer nichts besetzt ist)

    Du hast es relativ gut auf den Punkt gebracht Bert. An einem Werktag kommt es bei uns nicht selten vor, dass wir von 12 Stunden bis zu 6 Stunden reine Fahrzeit (also die Zeit in der das Auto effektiv läuft, Übernahme und Übergeben von Patienten sowie Versorgung nicht mitgerechnet) haben. Es bleibt daher oftmals nicht gerade viel Zeit für Möglichkeit Nr.3 da diese bei über 150 Nummern ziemlich Zeitintensiv ist.
    Bisher wird eine ausgedruckte Tabelle mit sechs Spalten verwendet.

    • Name(Nach. / Vor.)
    • Nummer
    • Leeres Feld für JA
    • Leeres Feld für NEIN
    • Leeres Feld für Nicht erreicht
    • Bemerkung

    Jetzt kann man sich den Aufwand für 150 Nummern und 7 Tage die Woche ca. vorstellen. Nun wird diese arbeite oft durch Fahrten unterbrochen. Der nächste der Zeit hat macht dann wieder weiter wo der letzte aufgehört hat und es entwickelt sich ein Stille-Post-Spiel.

    Die ideale Lösung wäre:

    • Ein Programm mit einem "Anruf" - Button und dazugehöriger Computer-Telefon-Verbindung. (Nicht umsetzbar, wird nicht genehmigt)
    • Das Echtzeit Einlesen von Dienstlöchern aus dem Dienstplan in diese Programm
      Wird allerdings kaum umsetzbar sein, da es keine Offizielle Lösung ist und daher keinerlei Berechtigung oder Unterstützung erfährt. Das RPS-System ist nicht öffentlich einsehbar und ohne Anmeldung nicht verwendbar.

    Veraltete Software ist leider oft ein Problem, da es zuviel Geld kosten würde diese für das gesamte Land oder Bundesland

    @gmmg die Quelle einfach anzuzapfen wird kaum möglich sein, deshalb ist es erstmal manuell vorgesehen.


    Es ist halt eine schwierige Thematik, da es auf keinen Fall durch einen "Mehraufwand" durch das Programm kommen soll...

    Wie gesagt, ist einfach eine Idee von mir und weil ich gerade Zeit dazu habe, mache ich mir ein paar Gedanken darüber ;)

  • Dienst - Suche - Programm, Verbesserungsvorschläge.

    • Stoani
    • 9. November 2016 um 20:57

    Danke Kanashius, für die Mühe. Ich werds mir bei Gelegenheit durchsehen, wird aber ein bisschen dauern bis ich alles durchschaut hab ;)

    Hier ist ein neuer Ansatz, schöner und ordentlicher find ich.

    Ist halt noch nicht designed und ohne irgendwelchen Schnickschnack.


    Edit: Neue Einlese - Funktion fürs Datum. Es werden jetzt IMMER 30 Tage im voraus angezeigt.

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiImageList.au3>
    #include <Date.au3>
    #include <GuiListView.au3>
    #include <StructureConstants.au3>
    #include <Array.au3>
    #include <StaticConstants.au3>
    #include <EditConstants.au3>
    
    
    
    
    #Region # # # # # # # # # # # # # # # # #		CREATE USER INTERFACE		# # # # # # # # # # # # # # # # #
    
    
    $pGUI = GUICreate("Dienstsuche OST - GMUNDEN", 1600, 900, (@DesktopWidth / 2) - 800, (@DesktopHeight / 2) - 450) ;GUI erstellen und zentrieren
    
    
    $pListView = GUICtrlCreateListView("", 0, 0, 1600, 600) ;ListView erstellen
    _GUICtrlListView_SetExtendedListViewStyle($pListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER)) ;Gitternetz für ListView
    
    
    _GUICtrlListView_AddColumn($pListView, "Wochentag", 100, 1) ;Column: Wochentage
    _GUICtrlListView_AddColumn($pListView, "Datum", 100, 2) ;Column: Datum
    _GUICtrlListView_AddColumn($pListView, "Priorität", 100, 2) ;Column: Priorität
    _GUICtrlListView_AddColumn($pListView, "Tagdienst", 100, 2) ;Column: Tagdienst
    _GUICtrlListView_AddColumn($pListView, "Nachtdienst", 100, 2) ;Column: Nachtdienst
    _GUICtrlListView_AddColumn($pListView, "Bemerkung", 300, 2) ;Column: Bemerkung
    
    
    $hImage = _GUIImageList_Create() ;Erstellt eine IMG-Liste für $pListView
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($pListView, 0xD8D8D8, 16, 16)) ;Weiß
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($pListView, 0xFF0000, 16, 16)) ;Rot
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($pListView, 0xEC9A4C, 16, 16)) ;Orange
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($pListView, 0x00CBFF, 16, 16)) ;Blau
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($pListView, 0x00FF00, 16, 16)) ;Grün
    
    
    _GUICtrlListView_SetImageList($pListView, $hImage, 1) ;Small - Images für hImage/pListView
    
    
    ;NEUE DATUM-EINLESEFUNKTION
    Global $Array[31][5] ; Datum in ListView eintragen
    For $i = 0 To 30 Step 1
    	$Array[$i][1] = _DateTimeFormat(_DateAdd('d', $i, _NowCalcDate()), 2)
    	$DateSplit = StringSplit($Array[$i][1],'.',2)
    	$Array[$i][0] = _DateDayOfWeek( _DateToDayOfWeek($DateSplit[2],$DateSplit[1], $DateSplit[0]), 2)
    Next
    
    
    
    
    ;Global $Array[_DateDaysInMonth(@YEAR, @MON) - @MDAY + 1][5] ; Datum in ListView eintragen
    ;For $i = 0 To _DateDaysInMonth(@YEAR, @MON) - @MDAY Step 1
    ;	$Array[$i][1] = _DateTimeFormat(_DateAdd('d', $i, ;_NowCalcDate()), 2)
    ;	$Array[$i][0] = _DateDayOfWeek(_DateToDayOfWeek(@YEAR, @MON, @MDAY + $i), 2)
    ;Next
    _GUICtrlListView_AddArray($pListView, $Array)
    
    
    #Region ContextMenu
    $pListView_ContextMenu = GUICtrlCreateContextMenu($pListView) ;ContextMenu erstellen
    $aContextMenu = GUICtrlCreateMenuItem("Sofort", $pListView_ContextMenu) ;Priorität = Sofort
    $bContextMenu = GUICtrlCreateMenuItem("Dringend", $pListView_ContextMenu) ;Priorität = Sofort
    $cContextMenu = GUICtrlCreateMenuItem("Normal", $pListView_ContextMenu) ;Priorität = Sofort
    $dContextMenu = GUICtrlCreateMenuItem("Erledigt", $pListView_ContextMenu) ;Priorität = Sofort
    $eContextMenu = GUICtrlCreateMenuItem("", $pListView_ContextMenu) ;Trennstrich erstellen ----
    
    
    $fContextMenu = GUICtrlCreateMenu("Suche hinzufügen", $pListView_ContextMenu) ;Priorität = Sofort
    $fContextMenu_1 = GUICtrlCreateMenu("Tagdienst", $fContextMenu) ;Tagdienst
    $fContextMenu_2 = GUICtrlCreateMenu("Nachtdienst", $fContextMenu) ;Nachtdienst
    
    
    $fContextMenu_1_a = GUICtrlCreateMenuItem("Einsatzlenker", $fContextMenu_1)
    $fContextMenu_1_b = GUICtrlCreateMenuItem("Transportführer", $fContextMenu_1)
    $fContextMenu_1_c = GUICtrlCreateMenuItem("Mannschaft", $fContextMenu_1)
    $fContextMenu_1_d = GUICtrlCreateMenuItem("HÄND Lenker", $fContextMenu_1)
    
    
    $fContextMenu_2_a = GUICtrlCreateMenuItem("Einsatzlenker", $fContextMenu_2)
    $fContextMenu_2_b = GUICtrlCreateMenuItem("Transportführer", $fContextMenu_2)
    $fContextMenu_2_c = GUICtrlCreateMenuItem("Mannschaft", $fContextMenu_2)
    $fContextMenu_2_d = GUICtrlCreateMenuItem("HÄND Lenker", $fContextMenu_2)
    #EndRegion ContextMenu
    GUISetState(@SW_SHOW) ;Set Parent GUI visible
    
    
    #EndRegion # # # # # # # # # # # # # # # # #		CREATE USER INTERFACE		# # # # # # # # # # # # # # # # #
    
    
    #Region # # # # # # # # # # # # # # # # #		LOOP Parent		# # # # # # # # # # # # # # # # #
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $aContextMenu ;Sofort
    			_SetPriority("Sofort", 2, 1)
    		Case $bContextMenu ;Dringend
    			_SetPriority("Dringend", 2, 2)
    		Case $cContextMenu ;Normal
    			_SetPriority("Normal", 2, 3)
    		Case $dContextMenu ;Erledigt
    			_SetPriority("Erledigt", 2, 4)
    		Case $fContextMenu_1_a ;EL Tagdienst
    			_CreateSearch("Einsatzlenker")
    	EndSwitch
    WEnd
    #EndRegion # # # # # # # # # # # # # # # # #		LOOP Parent		# # # # # # # # # # # # # # # # #
    
    
    Func _CreateSearch($cType) ;Suche hinzufügen
    	$cGUI = GUICreate("Suche hinzufügen", 200, 100, -1, -1, -1, $WS_EX_TOOLWINDOW)
    	$cLabel = GUICtrlCreateLabel("Wieviel " & $cType & " wollen Sie" & @CR & " zur Suche hinzufügen?", 10, 10, 180, 30)
    	$cInput = GUICtrlCreateInput("", 10, 50, 180, 20, $ES_NUMBER)
    	$cButton_a = GUICtrlCreateButton("Hinzufügen", 100, 80, 100, 20)
    	$cButton_b = GUICtrlCreateButton("Abbrechen", 0, 80, 100, 20)
    	GUISetState(@SW_SHOW) ;Set Parent GUI visible
    	While 1
    		$nMsg = GUIGetMsg()
    		Switch $nMsg
    			Case $GUI_EVENT_CLOSE
    				GUIDelete($cGUI) ;Löscht Child-GUI
    				ExitLoop ;Tritt aus dem Loop des Child-GUI's aus um wieder in den Loop des Parent-GUI's zu gelangen.
    		EndSwitch
    	WEnd
    EndFunc   ;==>_CreateSearch
    
    
    
    
    Func _SetPriority($pText, $pColumn, $pImage)
    	$LastSelection = _GUICtrlListView_GetSelectionMark($pListView) ;get last selection
    	_GUICtrlListView_AddSubItem($pListView, $LastSelection, $pText, $pColumn) ;set text for priority
    	_GUICtrlListView_SetItemImage($pListView, $LastSelection, $pImage) ;set image for priority
    EndFunc   ;==>_SetPriority
    Alles anzeigen
  • Warnungen abschalten in Scite

    • Stoani
    • 8. November 2016 um 15:41

    Soweit ich weiß ist #Region/#EndRegion als reine Formatierung für deinen Quellcode gedacht. Macht halt alles übersichtlicher und man muss keine 1000 Zeilen Code hoch und runter scrollen.

    Edit.:


    Ich verwende es zum Beispiel um Bereiche im Code zu begrenzen:

    AutoIt
    #Region # # # # # # # # # # # # # # # # #		CREATE USER INTERFACE		# # # # # # # # # # # # # # # # #
    
    
    $pGUI = GUICreate("Dienstsuche OST - GMUNDEN", 1600, 900, @DesktopWidth / 2, @DesktopHeight / 2) ;GUI erstellen
    
    
    $pListView = GUICtrlCreateListView("", 0, 0, 1600, 880) ;ListView erstellen
    _GUICtrlListView_AddColumn($pListView, "Wochentag", 100, 1) ;Column: Wochentage
    _GUICtrlListView_AddColumn($pListView, "Datum", 100, 2) ;Column: Datum
    _GUICtrlListView_AddColumn($pListView, "Priorität", 100, 2) ;Column: Priorität
    _GUICtrlListView_AddColumn($pListView, "Tagdienst 07:00 - 19:00", 250, 2) ;Column: Tagdienst
    _GUICtrlListView_AddColumn($pListView, "Nachtdienst 19:00 - 07:00", 250, 2) ;Column: Nachtdienst
    _GUICtrlListView_AddColumn($pListView, "Bemerkung", 300, 2) ;Column: Bemerkung
    
    
    $hImage = _GUIImageList_Create() ;Erstellt eine IMG-Liste für $pListView
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($pListView, 0xFFFFFF, 16, 16)) ;Weiß
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($pListView, 0xFF0000, 16, 16)) ;Rot
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($pListView, 0xEC9A4C, 16, 16)) ;Orange
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($pListView, 0x00cbff, 16, 16)) ;Blau
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($pListView, 0x00FF00, 16, 16)) ;Grün
    
    
    _GUICtrlListView_SetImageList($pListView, $hImage, 1) ;Small - Images für hImage/pListView
    
    
    $pListView_ContextMenu = GUICtrlCreateContextMenu($pListView) ;ContextMenu erstellen
    $aContextMenu = GUICtrlCreateMenuItem("Sofort", $pListView_ContextMenu) ;Priorität = Sofort
    $bContextMenu = GUICtrlCreateMenuItem("Dringend", $pListView_ContextMenu) ;Priorität = Sofort
    $cContextMenu = GUICtrlCreateMenuItem("Normal", $pListView_ContextMenu) ;Priorität = Sofort
    $dContextMenu = GUICtrlCreateMenuItem("Erledigt", $pListView_ContextMenu) ;Priorität = Sofort
    $eContextMenu = GUICtrlCreateMenuItem("", $pListView_ContextMenu) ;Trennstrich erstellen
    $fContextMenu = GUICtrlCreateMenuItem("Eintrag erstellen", $pListView_ContextMenu) ;Priorität = Sofort
    
    
    GUISetState(@SW_SHOW) ;Set Parent GUI visible
    
    
    #EndRegion # # # # # # # # # # # # # # # # #		CREATE USER INTERFACE		# # # # # # # # # # # # # # # # #
    Alles anzeigen
  • Warnungen abschalten in Scite

    • Stoani
    • 8. November 2016 um 13:57

    Also mir fällt da leider nix ein. Du kannst aber die Variablen einfach vorher leer definieren.

    Also zb.:

    $x = ""

    In einer Gruppe am Anfang des Scripts:

    AutoIt
    #Region Variablen definieren
    
    
    $a = ""
    $b = ""
    $c = ""
    
    
    #EndRegion
  • Warnungen abschalten in Scite

    • Stoani
    • 8. November 2016 um 12:25

    Habs nicht getestet aber geht das mit

    AutoIt
    Opt("MustDeclareVars", 0)       ; 0=nein, 1=erfordert Deklaration

    ?

    lg Stoani

  • Programmier-Ideen?

    • Stoani
    • 8. November 2016 um 12:09

    Also ich find so abstrakte ProgrammierVisualisierung immer recht spannend. Wenn man z.B. Mathematische Formeln und Funktionen graphisch durch ein paar Zeilen darstellen kann.

    Mit _GDIPLUS und Farben lassen sich da nette Bilder "malen"

    lg Stoani

  • ListViewItem ContextMenu Problem

    • Stoani
    • 8. November 2016 um 11:59

    Wow wow wow, ich habs jetzt erst gelesen @Bitnugger, sorry ;)

    Schaut auf dem Bild richtig fesch aus! Ich schaus mir jetzt mal an, dann meld ich mich wieder!

    Danke für die Zeit die du damit investiert hast!

  • Dienst - Suche - Programm, Verbesserungsvorschläge.

    • Stoani
    • 8. November 2016 um 11:48

    Hallo ihr da draußen,

    Zurzeit arbeite ich aus Laune und weil ich die Zeit gerade übrig hab an einem Programm, welches die Besetzung des Dienstplanes und die damit verbunden Suche nach Mitarbeitern erleichtern soll. Bisher war ein Zettel mit Telefonnummern dafür ausreichend, führt aber ab und zu zum Verlust der Übersicht und es entstehen Missverständnisse.

    Vorweg möchte ich nochmal erwähnen, dass ich nie irgendetwas in die Richtung Computer, IT oder Software - Engineering professionell gelehrt bekommen habe, ich bitte daher um ein bisschen Verständnis für den Zustand meines Source-Codes :D


    Dieser Thread soll mir wenn möglich dabei Helfen, die Abläufe zu optimieren, neue Ideen und Wege kennen zu lernen und Fehler im Code zu enttarnen.
    Ich werde den Code updaten, wenn sich grundlegende Dinge verändert haben oder neue Funktionen entstanden sind.


    Viel Spaß beim ausprobieren und danke für jede Sekunde die Ihr euch damit auseinandersetzt :)
    Ps.: Es wurden keine externen #Includes eingebaut, sollte daher bei jedem mit Copy/Paste laufen.


    Lg Stoani


    ;Edit1(ToDo Liste eingefügt):

    - EInträge bearbeiten
    - Anruf-Protokoll
    - Suche SMS generate
    - Nummern-Liste
    -Suche erstellen


    ;Edit2(Schriftart):
    Falls jemand das Original mit Dunant Schriftart ausprobieren möchte, Hier* ist ein Link zur Downloadseite. *(Link verweist auf: http://design.roteskreuz.at/vorlagen/vorla…emente/schrift/)


    AutoIt: Dienstsuche_Programm
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiImageList.au3>
    #include <Date.au3>
    #include <GuiListView.au3>
    #include <StructureConstants.au3>
    #include <Array.au3>
    #include <StaticConstants.au3>
    
    
    
    
    #Region ### GRAPHICAL USER INTERFACE (PARENT) ###
    $GUI = GUICreate("Dienstsuche OST - GMUNDEN", 1600, 900, -1, -1, BitOR($WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU))
    $MenuItem1 = GUICtrlCreateMenu("Aktion")
    $SubItem1_1 = GUICtrlCreateMenuItem("Dienstsuche starten", $MenuItem1)
    $SubItem1_2 = GUICtrlCreateMenuItem("Sperren", $MenuItem1)
    $SubItem1_3 = GUICtrlCreateMenuItem("Beenden", $MenuItem1)
    $MenuItem2 = GUICtrlCreateMenu("Liste")
    $SubItem2_1 = GUICtrlCreateMenuItem("Anzeigen", $MenuItem2)
    $SubItem2_2 = GUICtrlCreateMenuItem("Bearbeiten", $MenuItem2)
    $SubItem2_3 = GUICtrlCreateMenuItem("Exportieren", $MenuItem2)
    
    
    $List1 = GUICtrlCreateListView("", 0, 0, 1600, 880, $LVS_SINGLESEL)
    GUICtrlSetBkColor($List1, 0X292929)
    GUICtrlSetFont($List1, 12, 300, -1, "Dunant Light", 5)
    GUICtrlSetColor($List1, 0XFFFFFF)
    
    
    $contextmenu = GUICtrlCreateContextMenu($List1)
    $sofort = GUICtrlCreateMenuItem("Sofort", $contextmenu)
    $dringend = GUICtrlCreateMenuItem("Dringend", $contextmenu)
    $normal = GUICtrlCreateMenuItem("Normal", $contextmenu)
    $erledigt = GUICtrlCreateMenuItem("Erledigt", $contextmenu)
    GUICtrlCreateMenuItem("", $contextmenu)
    $erstellen = GUICtrlCreateMenuItem("Eintrag erstellen", $contextmenu)
    GUISetState(@SW_SHOWMAXIMIZED)
    GUISetState(@SW_SHOW)
    #EndRegion ### GRAPHICAL USER INTERFACE ###
    
    
    _Setup_Scene()
    
    
    While 1
    
    
    
    
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $SubItem1_1 ;Dienstsuche starten
    
    
    
    
    		Case $SubItem1_2 ;Sperren
    
    
    
    
    		Case $SubItem1_3 ;Beenden
    			Exit
    
    
    		Case $SubItem2_1 ;Anzeigen
    
    
    
    
    		Case $SubItem2_2 ;Bearbeiten
    
    
    
    
    		Case $SubItem2_3 ;Exportieren
    
    
    
    
    		Case $sofort ; PRIORITÄTEN werden definiert und eingetragen.
    			$LastSelection = _GUICtrlListView_GetSelectionMark($List1)
    			_GUICtrlListView_AddSubItem($List1, $LastSelection, "█ SOFORT █", 2)
    			_GUICtrlListView_SetItemImage($List1, $LastSelection, 1)
    
    
    		Case $dringend
    			$LastSelection = _GUICtrlListView_GetSelectionMark($List1)
    			_GUICtrlListView_AddSubItem($List1, $LastSelection, "DRINGEND", 2)
    			_GUICtrlListView_SetItemImage($List1, $LastSelection, 2)
    
    
    		Case $normal
    			$LastSelection = _GUICtrlListView_GetSelectionMark($List1)
    			_GUICtrlListView_AddSubItem($List1, $LastSelection, "Normal", 2)
    			_GUICtrlListView_SetItemImage($List1, $LastSelection, 3)
    
    
    		Case $erledigt
    			$LastSelection = _GUICtrlListView_GetSelectionMark($List1)
    			_GUICtrlListView_AddSubItem($List1, $LastSelection, "✔", 2)
    			_GUICtrlListView_SetItemImage($List1, $LastSelection, 4)
    
    
    		Case $erstellen
    
    
    			GUISetState(@SW_DISABLE, $GUI) ; Parent-GUI wird disabled.
    
    
    
    
    			#Region ### Setup Child GUI ###
    			$cGUI = GUICreate("Eintrag erstellen", 400, 300, -1, -1, -1, $WS_EX_TOOLWINDOW, $GUI)
    			$cBtn = GUICtrlCreateButton("Erstellen", 10, 270, 380, 30)
    			GUICtrlSetFont($cBtn, 14, 300, -1, "Dunant Medium")
    
    
    			GUICtrlCreateGraphic(200, 0, 1, 230, $SS_SUNKEN) ; Trennlinie
    
    
    
    
    			;--------- TAGDIENST -------
    			$cLable_TD = GUICtrlCreateLabel("Tagdienst ( 7 - 19 Uhr )", 10, 20, 180, 30, $SS_Center)
    			GUICtrlSetFont($cLable_TD, 14, 300, -1, "Dunant Light")
    
    
    			$cCheckBox_EL_TD = GUICtrlCreateCheckbox("Einsatzlenker", 10, 70, 130)
    			$cCheckBox_TF_TD = GUICtrlCreateCheckbox("Transportführer", 10, 100, 130)
    			$cCheckBox_AMD_TD = GUICtrlCreateCheckbox("Ambulanzdienst", 10, 130, 130)
    			$cCheckBox_HEL_TD = GUICtrlCreateCheckbox("HÄND Lenker", 10, 160, 130)
    
    
    			$cCombo_EL_TD = GUICtrlCreateCombo("", 140, 70, 50, 30)
    			GUICtrlSetData($cCombo_EL_TD, "1|2|3|4|5|6|7|8|9|10")
    
    
    			$cCombo_TF_TD = GUICtrlCreateCombo("", 140, 100, 50, 30)
    			GUICtrlSetData($cCombo_TF_TD, "1|2|3|4|5|6|7|8|9|10")
    
    
    			$cCombo_AMD_TD = GUICtrlCreateCombo("", 140, 130, 50, 30)
    			GUICtrlSetData($cCombo_AMD_TD, "1|2|3|4|5|6|7|8|9|10")
    
    
    			$cCombo_HEL_TD = GUICtrlCreateCombo("", 140, 160, 50, 30)
    			GUICtrlSetData($cCombo_HEL_TD, "1|2|3|4|5|6|7|8|9|10")
    
    
    
    
    
    
    			GUICtrlSetState($cCombo_EL_TD, 128)
    			GUICtrlSetState($cCombo_TF_TD, 128)
    			GUICtrlSetState($cCombo_AMD_TD, 128)
    			GUICtrlSetState($cCombo_HEL_TD, 128)
    
    
    			GUICtrlSetFont($cCheckBox_EL_TD, 12, 300, -1, "Dunant Light")
    			GUICtrlSetFont($cCheckBox_TF_TD, 12, 300, -1, "Dunant Light")
    			GUICtrlSetFont($cCheckBox_AMD_TD, 12, 300, -1, "Dunant Light")
    			GUICtrlSetFont($cCheckBox_HEL_TD, 12, 300, -1, "Dunant Light")
    
    
    
    
    			;--------- NACHTDIENST -------
    			$cLable_ND = GUICtrlCreateLabel("Nachtdienst ( 19 - 7 Uhr )", 210, 20, 180, 30, $SS_Center)
    			GUICtrlSetFont($cLable_ND, 14, 300, -1, "Dunant Light")
    
    
    			$cCheckBox_EL_ND = GUICtrlCreateCheckbox("Einsatzlenker", 210, 70, 130)
    			$cCheckBox_TF_ND = GUICtrlCreateCheckbox("Transportführer", 210, 100, 130)
    			$cCheckBox_AMD_ND = GUICtrlCreateCheckbox("Ambulanzdienst", 210, 130, 130)
    			$cCheckBox_HEL_ND = GUICtrlCreateCheckbox("HÄND Lenker", 210, 160, 130)
    
    
    			$cCombo_EL_ND = GUICtrlCreateCombo("", 340, 70, 50, 30)
    			GUICtrlSetData($cCombo_EL_ND, "1|2|3|4|5|6|7|8|9|10")
    
    
    			$cCombo_TF_ND = GUICtrlCreateCombo("", 340, 100, 50, 30)
    			GUICtrlSetData($cCombo_TF_ND, "1|2|3|4|5|6|7|8|9|10")
    
    
    			$cCombo_AMD_ND = GUICtrlCreateCombo("", 340, 130, 50, 30)
    			GUICtrlSetData($cCombo_AMD_ND, "1|2|3|4|5|6|7|8|9|10")
    
    
    			$cCombo_HEL_ND = GUICtrlCreateCombo("", 340, 160, 50, 30)
    			GUICtrlSetData($cCombo_HEL_ND, "1|2|3|4|5|6|7|8|9|10")
    
    
    
    
    
    
    			$cLable_Bemerkung = GUICtrlCreateLabel("Bemerkung:", 10, 210, 180, 30, $SS_LEFT)
    			GUICtrlSetFont($cLable_Bemerkung, 14, 300, -1, "Dunant Light")
    			$cInput = GUICtrlCreateInput("", 10, 235, 380, 25)
    			GUICtrlSetFont($cInput, 12, 300, -1, "Dunant Light")
    
    
    
    
    
    
    			GUICtrlSetState($cCombo_EL_ND, 128)
    			GUICtrlSetState($cCombo_TF_ND, 128)
    			GUICtrlSetState($cCombo_AMD_ND, 128)
    			GUICtrlSetState($cCombo_HEL_ND, 128)
    
    
    			GUICtrlSetFont($cCheckBox_EL_ND, 12, 300, -1, "Dunant Light")
    			GUICtrlSetFont($cCheckBox_TF_ND, 12, 300, -1, "Dunant Light")
    			GUICtrlSetFont($cCheckBox_AMD_ND, 12, 300, -1, "Dunant Light")
    			GUICtrlSetFont($cCheckBox_HEL_ND, 12, 300, -1, "Dunant Light")
    			GUISetState(@SW_SHOW)
    			#EndRegion ### Setup Child GUI ###
    
    
    			While 1
    				$nMsg = GUIGetMsg()
    				Switch $nMsg
    					Case $GUI_EVENT_CLOSE
    						GUISetState(@SW_ENABLE, $GUI)
    						GUIDelete($cGUI)
    						ExitLoop
    
    
    					Case $cBtn ; <------ BUTTON ERSTELLEN
    						$LastSelection = _GUICtrlListView_GetSelectionMark($List1) ; Die letzte Auswahl des Listviews wird in eine Variable gespeichert.
    
    
    						$EL_TD = "" ;Variablen müssen vorher als Leer definiert werden.
    						$TF_TD = ""
    						$AMD_TD = ""
    						$HEL_TD = ""
    
    
    						$EL_ND = ""
    						$TF_ND = ""
    						$AMD_ND = ""
    						$HEL_ND = ""
    
    
    
    
    
    
    						If GUICtrlRead($cCheckBox_EL_TD) = 1 Then ;Wenn die Checkbox aktiv ist, wird der Inhalt ausgelesen, sonst nicht. Gibts da keine schönere Variante?
    							$EL_TD = "[" & GUICtrlRead($cCombo_EL_TD) & "-EL]"
    						EndIf
    
    
    						If GUICtrlRead($cCheckBox_TF_TD) = 1 Then
    							$TF_TD = "[" & GUICtrlRead($cCombo_TF_TD) & "-TF]"
    						EndIf
    
    
    						If GUICtrlRead($cCheckBox_AMD_TD) = 1 Then
    							$AMD_TD = "[" & GUICtrlRead($cCombo_AMD_TD) & "-AMD]"
    						EndIf
    
    
    						If GUICtrlRead($cCheckBox_HEL_TD) = 1 Then
    							$HEL_TD = "[" & GUICtrlRead($cCombo_HEL_TD) & "-HÄND]"
    						EndIf
    
    
    
    
    
    
    						If GUICtrlRead($cCheckBox_EL_ND) = 1 Then
    							$EL_ND = "[" & GUICtrlRead($cCombo_EL_ND) & "-EL]"
    						EndIf
    
    
    						If GUICtrlRead($cCheckBox_TF_ND) = 1 Then
    							$TF_ND = "[" & GUICtrlRead($cCombo_TF_ND) & "-TF]"
    						EndIf
    
    
    						If GUICtrlRead($cCheckBox_AMD_ND) = 1 Then
    							$AMD_ND = "[" & GUICtrlRead($cCombo_AMD_ND) & "-AMD]"
    						EndIf
    
    
    						If GUICtrlRead($cCheckBox_HEL_ND) = 1 Then
    							$HEL_ND = "[" & GUICtrlRead($cCombo_HEL_ND) & "-HÄND]"
    						EndIf
    
    
    
    
    						$BEM = GUICtrlRead($cInput)
    
    
    						_GUICtrlListView_AddSubItem($List1, $LastSelection, $BEM, 5) ;Bemerkung in Listview eintragen.
    
    
    						_GUICtrlListView_AddSubItem($List1, $LastSelection, $EL_TD & $TF_TD & $AMD_TD & $HEL_TD, 3) ;Tagdienst Output in LV eintragen.
    						_GUICtrlListView_AddSubItem($List1, $LastSelection, $EL_ND & $TF_ND & $AMD_ND & $HEL_ND, 4) ;Nachtdienst Output in LV eintragen.
    
    
    						GUISetState(@SW_ENABLE, $GUI) ;Enabled Parent-GUI
    						GUIDelete($cGUI) ;Löscht Child-GUI
    						ExitLoop ;Tritt aus dem Loop des Child-GUI's aus um wieder in den Loop des Parent-GUI's zu gelangen.
    
    
    ;~ 						############### REGION TAGDIENST ###############
    						;Wenn die Checkbox aktiv ist, wird die Combobox enabled, sonst disabled(standard).
    					Case $cCheckBox_EL_TD ;<------------------- EINSATZLENKER
    						If _IsChecked($cCheckBox_EL_TD) Then
    							GUICtrlSetState($cCombo_EL_TD, 64)
    						Else
    							GUICtrlSetState($cCombo_EL_TD, 128)
    						EndIf
    
    
    					Case $cCheckBox_TF_TD ;<------------------- TRANSPORTFÜHRER
    						If _IsChecked($cCheckBox_TF_TD) Then
    							GUICtrlSetState($cCombo_TF_TD, 64)
    						Else
    							GUICtrlSetState($cCombo_TF_TD, 128)
    						EndIf
    
    
    					Case $cCheckBox_AMD_TD ;<------------------- AMBULANZDIENST
    						If _IsChecked($cCheckBox_AMD_TD) Then
    							GUICtrlSetState($cCombo_AMD_TD, 64)
    						Else
    							GUICtrlSetState($cCombo_AMD_TD, 128)
    						EndIf
    
    
    					Case $cCheckBox_HEL_TD ;<------------------- HÄND LENKER
    						If _IsChecked($cCheckBox_HEL_TD) Then
    							GUICtrlSetState($cCombo_HEL_TD, 64)
    						Else
    							GUICtrlSetState($cCombo_HEL_TD, 128)
    						EndIf
    
    
    ;~ 						############### REGION NACHTDIENST ###############
    					Case $cCheckBox_EL_ND ;<------------------- EINSATZLENKER
    						If _IsChecked($cCheckBox_EL_ND) Then
    							GUICtrlSetState($cCombo_EL_ND, 64)
    						Else
    							GUICtrlSetState($cCombo_EL_ND, 128)
    						EndIf
    
    
    					Case $cCheckBox_TF_ND ;<------------------- TRANSPORTFÜHRER
    						If _IsChecked($cCheckBox_TF_ND) Then
    							GUICtrlSetState($cCombo_TF_ND, 64)
    						Else
    							GUICtrlSetState($cCombo_TF_ND, 128)
    						EndIf
    
    
    					Case $cCheckBox_AMD_ND ;<------------------- AMBULANZDIENST
    						If _IsChecked($cCheckBox_AMD_ND) Then
    							GUICtrlSetState($cCombo_AMD_ND, 64)
    						Else
    							GUICtrlSetState($cCombo_AMD_ND, 128)
    						EndIf
    
    
    					Case $cCheckBox_HEL_ND ;<------------------- HÄND LENKER
    						If _IsChecked($cCheckBox_HEL_ND) Then
    							GUICtrlSetState($cCombo_HEL_ND, 64)
    						Else
    							GUICtrlSetState($cCombo_HEL_ND, 128)
    						EndIf
    
    
    				EndSwitch
    			WEnd
    
    
    	EndSwitch
    WEnd
    
    
    
    
    ; ### FUNKTIONS SEKTION ###
    ; Hier werden alle Funktionen erstellt.
    
    
    Func _IsChecked($idControlID)
    	Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED
    EndFunc   ;==>_IsChecked
    
    
    Func _Setup_Scene()
    
    
    	_GUICtrlListView_AddColumn($List1, "Wochentag", 100, 1)
    	_GUICtrlListView_AddColumn($List1, "Datum", 100, 2)
    	_GUICtrlListView_AddColumn($List1, "Priorität", 100, 2)
    	_GUICtrlListView_AddColumn($List1, "Tagdienst 07:00 - 19:00", 250, 2)
    	_GUICtrlListView_AddColumn($List1, "Nachtdienst 19:00 - 07:00", 250, 2)
    	_GUICtrlListView_AddColumn($List1, "Bemerkung", 300, 2)
    
    
    	$hImage = _GUIImageList_Create()
    	_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List1, 0xFFFFFF, 16, 16)) ; Weiß
    	_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List1, 0xFF0000, 16, 16)) ; Rot
    	_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List1, 0xEC9A4C, 16, 16)) ;Orange
    	_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List1, 0x00cbff, 16, 16)) ;Blau
    	_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List1, 0x00FF00, 16, 16)) ;Grün
    
    
    	_GUICtrlListView_SetImageList($List1, $hImage, 1)
    
    
    	Global $Array[_DateDaysInMonth(@YEAR, @MON) - @MDAY + 1][5]
    
    
    	For $i = 0 To _DateDaysInMonth(@YEAR, @MON) - @MDAY Step 1
    		$Array[$i][1] = _DateTimeFormat(_DateAdd('d', $i, _NowCalcDate()), 2)
    		$Array[$i][0] = _DateDayOfWeek(_DateToDayOfWeek(@YEAR, @MON, @MDAY + $i), 2)
    
    
    	Next
    	_GUICtrlListView_AddArray($List1, $Array)
    
    
    EndFunc   ;==>_Setup_Scene
    Alles anzeigen

    Edit 3:

    Projekt derzeit auf Eis gelegt, weil es einfach nicht wirklich umsetzbar ist, ohne auf die Datenbanken des Dienstplanes Zugriff zu haben.

    Wenn sich dementsprechend mal was tut, werde ich mich gerne wieder damit beschäftigen!

    Trotzdem danke an alle die hier ihren Beitrag geleistet haben!!!

    Ihr seid die Besten :)

  • ListViewItem ContextMenu Problem

    • Stoani
    • 5. November 2016 um 11:40

    Du bist ein Schatz! Danke vielmals.

    Es ist genauso wie du sagst... Auf dem Schlauch gestanden aber so richtig...

    Haut super hin und läuft genau wie es soll. Danke danke danke danke ;)

    #erledigt

  • ListViewItem ContextMenu Problem

    • Stoani
    • 5. November 2016 um 00:17

    Hallo Leute,

    es tut mir ehrlich Leid, euch schonwieder mit diesem leidigen Thema "ListViews" belästigen zu müssen. :/

    Leider stehe ich gerade mal wieder so richtig am Schlauch und komme nicht weiter.


    Bei diesem Projekt soll in einem ListView - Control eine bearbeitbare Übersicht über einen Dienstplan entstehen.

    Um die Priorität der einzelnen noch zu füllenden Löcher festzulegen würde ich gerne ein Context - Menü beim Klicken auf das jeweilige ListViewItem aufrufen.

    So weit, so gut. Die Frage ist eigentlich nur, wie schaffe ich es jetzt bei der Auswahl eines Menüpunktes die gewünschte Aktion abzurufen?..


    AutoIt
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #include <GuiImageList.au3>
    #include <Date.au3>
    #include <GuiListView.au3>
    #include <StructureConstants.au3>
    #Region ### GRAPHICAL USER INTERFACE ###
    $GUI = GUICreate("Dienstsuche OST - GMUNDEN", 900, 600)
    $MenuItem1 = GUICtrlCreateMenu("Aktion")
    $SubItem1_1 = GUICtrlCreateMenuItem("Dienstsuche starten", $MenuItem1)
    $SubItem1_2 = GUICtrlCreateMenuItem("Sperren", $MenuItem1)
    $SubItem1_3 = GUICtrlCreateMenuItem("Beenden", $MenuItem1)
    $MenuItem2 = GUICtrlCreateMenu("Liste")
    $SubItem2_1 = GUICtrlCreateMenuItem("Anzeigen", $MenuItem2)
    $SubItem2_2 = GUICtrlCreateMenuItem("Bearbeiten", $MenuItem2)
    $SubItem2_3 = GUICtrlCreateMenuItem("Exportieren", $MenuItem2)
    $List1 = GUICtrlCreateListView("", 5, 5, 890, 335)
    GUISetState(@SW_SHOW)
    #EndRegion ### GRAPHICAL USER INTERFACE ###
    GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events")
    Global $iLastIndex = -1
    $hImage = _GUIImageList_Create()
        _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List1, 0xFF0000, 16, 16))
    	_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List1, 0x999999, 16, 16))
        _GUICtrlListView_SetImageList($List1, $hImage, 1)
    #Region ### Initiate StartUp ###
    	For $i = 0 To 7 Step 1
    		$D_Tag = _DateTimeFormat(_DateAdd("d", $i, _NowCalcDate()), 1) & " - Tagdienst"
    		$D_Nacht = _DateTimeFormat(_DateAdd("d", $i, _NowCalcDate()), 1) & " - Nachtdienst"
    		_GUICtrlListView_AddItem($List1,$D_Tag,1)
    		_GUICtrlListView_AddItem($List1,$D_Nacht,1)
    ;~ 		ConsoleWrite($D_Tag&@CRLF)
    ;~ 		ConsoleWrite($D_Nacht&@CRLF)
    	Next
    _GUICtrlListView_InsertColumn($List1, 0, "Datum")
    _GUICtrlListView_SetColumnWidth ($List1, 0, $LVSCW_AUTOSIZE)
    #EndRegion ### End StartUp ###
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $SubItem1_1
    		Case $SubItem1_2
    		Case $SubItem1_3
    			Exit
    		Case $SubItem2_1
    		Case $SubItem2_2
    		Case $SubItem2_3
    	EndSwitch
    		$iLastIndex = _GUICtrlListView_GetSelectionMark($List1)
    WEnd
    Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam)
    	#forceref $hWndGUI, $MsgID, $wParam
    	Local $tagNMHDR, $event, $hwndFrom, $code
    	$tagNMHDR = DllStructCreate("int;int;int", $lParam)
    	If @error Then Return
    	$event = DllStructGetData($tagNMHDR, 3)
    	Select
    		Case $wParam = $List1
    			Select
    				Case $event = $NM_RCLICK
    					$contextmenu = GUICtrlCreateContextMenu($List1)
    					$textitem = GUICtrlCreateMenuItem("Sofort", $contextmenu)
    					$textitem = GUICtrlCreateMenuItem("Dringend", $contextmenu)
    					$textitem = GUICtrlCreateMenuItem("Normal", $contextmenu)
    					$textitem = GUICtrlCreateMenuItem("Erledigt", $contextmenu)
    			EndSelect
    	EndSelect
    	$tagNMHDR = 0
    	$event = 0
    	$lParam = 0
    EndFunc   ;==>WM_Notify_Events
    Alles anzeigen
    • Wo soll die Schleife zur Abfrage des Menüs hin?

    Nach einem "Click" auf z.B.: "Dringend" wird über _GuictrlListView_ItemSetImage das Bild des aktiven ($iLastIndex) Items auf z.B.: rot geändert...

    Nur funzt das gar nicht so wie ich es will und ich denke mal es ist eher ein kleiner Denkfehler...


    Vielleicht fällt wem was auf/ein. :thumbup::thumbup:

    Liebe Grüße,
    Stoani

  • Notification von PC an IOS - Gerät senden

    • Stoani
    • 19. Februar 2016 um 01:12
    Zitat von alpines

    TLS sollte unterstützt werden, eventuell hast du den falschen Port erwischt.

    Nope, denke nicht. 587 oder 25


    Bei 587:
    "### COM Error ! Number: 80020009 ScriptLine: 120 Description:Der Transport konnte keine Verbindung zum Server herstellen."

    Bei 25:
    ### COM Error ! Number: 80020009 ScriptLine: 120 Description:Die Nachricht konnte nicht an den SMTP-Server gesendet werden. Der Transportfehlercode lautet 0x800ccc69. Die Serverantwort lautet 550 5.3.4 554-554 5.2.0 STOREDRV.Deliver; delivery result banner


    EDIT: 1

    Hier die Einstellungen von MS:

    Zitat
    • Incoming (IMAP) Server
    • Server address: imap-mail.outlook.com
    • Port: 993
    • Encrypted Connection: SSL
    • Outgoing (SMTP) Server
    • Server address: smtp-mail.outlook.com
    • Port: 25 (or 587 if 25 is blocked)
    • Authentication: Yes
    • Encrypted Connection: TLS
    • User name: Your email address
    • Password: Your password

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™