Du hast übrigends alle Variablen vergessen(Außer die Version).Es fehlen Variablen für die .ini(Namen),für die Patientennummer)
"Arzt" Programm
-
- [ offen ]
-
MOZ -
29. November 2008 um 10:22 -
Geschlossen -
Erledigt
-
-
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.10.0
Author: SirocoolScript Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------; Script Start - Add your code below here
Dim $ver = "1.0.0"
#include <Inet.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Local $INI = @ScriptDir & "\Patienten.ini"; nur zum Testen:
If Not FileExists($INI) Then
IniWrite($INI, "Patienten", 10000, "Peter|Lustig|11.11.1956|12345 Grüner-Wald|Bauwagen 1")
IniWrite($INI, "Patienten", 10001, "Marion|Rosenbaum|08.12.1987|33445 Irgendwo|Am Feld 35")
IniWrite($INI, "Patienten", 10002, "Max|Mustermann|12.12.1978|44556 Musterdorf|Mustergasse 17")
IniWrite($INI, "Numbers", "last", 10002)
EndIf
; Ende Test-INIGlobal $aPatienten = IniReadSection($INI, "Patienten")
Local $lastNum = IniRead($INI, "Numbers", "last", 9999)If FileExists("C:\artzt\images\bg.bmp") Then
_Haupt()
Else
DirCreate("C:\artzt\images\")
FileInstall("images\Close.bmp","C:\artzt\images\close.bmp")
FileInstall("images\bg.bmp","C:\artzt\images\bg.bmp")
Sleep(500)
_Haupt()
EndIf
Func _Haupt()
$Form1 = GUICreate("Artzt v.1.0.0", 900, 600, -1, -1,$WS_POPUP)
GUISetBkColor("C:\artzt\images\bg.gif")
$Pic6 = GUICtrlCreatePic("C:\artzt\images\close.bmp", 858, 0, 42, 40, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUICtrlSetCursor (-1, 0)
$Pic7 = GUICtrlCreatePic("C:\artzt\images\bg.bmp", 0, 0, 900, 600, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$WS_DISABLED))
$PageControl1 = GUICtrlCreateTab(8, 56, 900, 600)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("Patienten")
$Listview1 = GUICtrlCreateListView("Nr|Vorname|Nachname|Geburtsdatum|PLZ / Wohnort| Straße", 340, 361, 559, 200)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
; ### hier Kontextmenü für ListView einfügen:
$mnu = GUICtrlCreateContextMenu($Listview1)
$mnu_del = GUICtrlCreateMenuItem('Patient Löschen', $mnu)
; ### Ende Kontextmenü
$Label1 = GUICtrlCreateLabel("Vorname:", 345, 105, 73, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Nachname:", 600, 105, 85, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input1 = GUICtrlCreateInput("", 420, 105, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input2 = GUICtrlCreateInput("", 700, 105, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("Geburtsdatum:", 345, 169, 111, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input3 = GUICtrlCreateInput("DD.MM.YYYY", 420, 169, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label4 = GUICtrlCreateLabel("PLZ / Wohnort:", 600, 169, 106, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input4 = GUICtrlCreateInput("", 700, 169, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label5 = GUICtrlCreateLabel("Straße:", 345, 233, 57, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input5 = GUICtrlCreateInput("", 420, 233, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Neuen Patienten speichern", 700, 233, 161, 30, 0)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$TabSheet3 = GUICtrlCreateTabItem("Termine")
GUICtrlCreateTabItem("")
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
GUISetState(@SW_SHOW)While 1
$nMsg = GUIGetMsg(1)
Switch $nMsg[1] ; Window-Handle
Case $Form1
Switch $nMsg[0] ; Event
Case $GUI_EVENT_CLOSE
Exit
Case $PageControl1
If GUICtrlRead($PageControl1) = 0 ThenElseIf GUICtrlRead($PageControl1) = 1 Then
ElseIf GUICtrlRead($PageControl1) = 2 Then
EndIf
Case $Button1
$lastNum += 1
$Vorname = GUICtrlRead($Input1)
$Nachname = GUICtrlRead($Input2)
$Geburtsdatum = GUICtrlRead($Input3)
$PLZWohnort = GUICtrlRead($Input4)
$Strasse = GUICtrlRead($Input5)
IniWrite($INI, "Numbers", "last", $lastNum)
IniWrite($INI, "Patienten", $lastNum, $Vorname & '|' & $Nachname & '|' & $Geburtsdatum & '|' & $PLZWohnort & '|' & $Strasse)
GUICtrlSetData($Input1, "")
GUICtrlSetData($Input2, "")
GUICtrlSetData($Input3, "DD.MM.YYYY")
GUICtrlSetData($Input4, "")
GUICtrlSetData($Input5, "")
; Array mit Patienten-Daten neu einlesen
$aPatienten = IniReadSection($INI, "Patienten")
_FillListView()
Case $mnu_del
; Eintrag aus INI löschen:
$index = _GUICtrlListView_GetSelectedIndices($Listview1)
$del_Key = _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $index, 0)
IniDelete($INI, "Patienten", $del_key)
; Array mit Patienten-Daten neu einlesen
$aPatienten = IniReadSection($INI, "Patienten")
; entfernt Eintrag aus Liste:
_GUICtrlListView_DeleteItemsSelected($Listview1)
Case $Pic6
_AnimButton($Form1, $Pic6)
_Close()EndSwitch
EndSwitch
WEnd_GUICtrlListView_DeleteAllItems($Listview1)
If $lastNum = 9999 Then Return
For $i = 1 To UBound($aPatienten) -1
GUICtrlCreateListViewItem($aPatienten[$i][0] & '|' & $aPatienten[$i][1], $Listview1)
Next
EndFuncFunc _LeftDblClick($Info) ; Inhalt der angeklickten Spalte wird in GUI gezeigt
Local $indx_Item = $Info[3], $indx_Sub = $Info[4]
GUICtrlSetData($lb_Patient, _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $indx_Item, $indx_Sub))
GUISetState(@SW_SHOW, $Form2)
EndFunc
Func _Close()
Exit
EndFunc
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $ListView1
If Not IsHWnd($ListView1) Then $hWndListView = GUICtrlGetHandle($ListView1)$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $LVN_COLUMNCLICK ; A column was clicked
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
;~ _ColumnClick($aInfo)
Case $LVN_DELETEITEM ; An item is about to be deleted
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
;~ _ItemDeleted($aInfo)
Case $LVN_HOTTRACK ; Sent by a list-view control when the user moves the mouse over an item
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
Return 0 ; allow the list view to perform its normal track select processing.
;Return 1 ; the item will not be selected.
;~ _HottTrackItem($aInfo)
Case $LVN_KEYDOWN ; A key has been pressed
Local $tInfo = DllStructCreate($tagNMLVKEYDOWN, $ilParam)
Local $aInfo[5] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "VKey"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _KeyDown($aInfo)
Case $NM_CLICK ; Sent by a list-view control when the user clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _LeftClick($aInfo)
Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
_LeftDblClick($aInfo)
Case $NM_KILLFOCUS ; The control has lost the input focus
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _LostFocus($aInfo)
Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
; Return 1 ; not to allow the default processing
Return 0 ; allow the default processing
;~ _RightClick($aInfo)
Case $NM_RDBLCLK ; Sent by a list-view control when the user double-clicks an item with the right mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _RightDblClick($aInfo)
Case $NM_RETURN ; The control has the input focus and that the user has pressed the ENTER key
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _InputFocusReturn($aInfo)
Case $NM_SETFOCUS ; The control has received the input focus
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _SetFocus($aInfo)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Func _AnimButton($IDgui, $IDbtn, $delay=100);Animiert bilder als button, funktion an sich von BugFix
Local $pos = ControlGetPos($IDgui, '', $IDbtn)
Local $pWin = WinGetPos($IDgui)
ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1]+2, $pos[2]-2, $pos[3]-2)
Sleep($delay)
ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1], $pos[2], $pos[3])
EndFunc ;==> _AnimButton -
- Offizieller Beitrag
Hm, ich will deine Arbeit nicht niedermachen das mal von Vorneweg. Läuft das Script bei dir überhaut ? Kann mir des nicht vorstellen , bei so viele Fehlern schon bei der compilierung. Habe Autoit 3.2.12.1 und weiß nicht ob dein Script so wie es ist auf Autoit 3.2.10.0 läuft. Nimm mal die aktuelle Version 3.2.12.1 und probier es aus. Ich kann nur soviel sagen, BUG´s finden im Script ist schön und gut ,sollte aber zumindest mal anlaufen .
Edir habe jetzt des Script das beim Compilieren nur noch 1 Fehlermeldung kommt.
Zu dem Fehler : Woher hast du die Function _FillListView() ? Du rufst sie im Script auf aber es gibt diese Function nicht in deinem Script . -
ziehe bild aber sind noch kleine fehler drin
http://s11b.directupload.net/file/d/1629/5u85o6xf_jpg.htm
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.10.0
Author: SirocoolScript Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------; Script Start - Add your code below here
Dim $ver = "1.0.0"
#include <Inet.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Local $INI = @ScriptDir & "\Patienten.ini"; nur zum Testen:
If Not FileExists($INI) Then
IniWrite($INI, "Patienten", 10000, "Peter|Lustig|11.11.1956|12345 Grüner-Wald|Bauwagen 1")
IniWrite($INI, "Patienten", 10001, "Marion|Rosenbaum|08.12.1987|33445 Irgendwo|Am Feld 35")
IniWrite($INI, "Patienten", 10002, "Max|Mustermann|12.12.1978|44556 Musterdorf|Mustergasse 17")
IniWrite($INI, "Numbers", "last", 10002)
EndIf
; Ende Test-INIGlobal $aPatienten = IniReadSection($INI, "Patienten")
Local $lastNum = IniRead($INI, "Numbers", "last", 9999)If FileExists("C:\artzt\images\bg.bmp") Then
_Haupt()
Else
DirCreate("C:\artzt\images\")
FileInstall("images\Close.bmp","C:\artzt\images\close.bmp")
FileInstall("images\bg.bmp","C:\artzt\images\bg.bmp")
Sleep(500)
_Haupt()
EndIf
Func _Haupt()
$Form1 = GUICreate("Artzt v.1.0.0", 900, 600, -1, -1,$WS_POPUP)
GUISetBkColor("C:\artzt\images\bg.gif")
$Pic6 = GUICtrlCreatePic("C:\artzt\images\close.bmp", 858, 0, 42, 40, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUICtrlSetCursor (-1, 0)
$Pic7 = GUICtrlCreatePic("C:\artzt\images\bg.bmp", 0, 0, 900, 600, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$WS_DISABLED))
$PageControl1 = GUICtrlCreateTab(8, 56, 900, 600)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("Patienten")
$Listview1 = GUICtrlCreateListView("Nr|Vorname|Nachname|Geburtsdatum|PLZ / Wohnort| Straße", 340, 361, 559, 200)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
; ### hier Kontextmenü für ListView einfügen:
$mnu = GUICtrlCreateContextMenu($Listview1)
$mnu_del = GUICtrlCreateMenuItem('Patient Löschen', $mnu)
; ### Ende Kontextmenü
$Label1 = GUICtrlCreateLabel("Vorname:", 345, 105, 73, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Nachname:", 600, 105, 85, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input1 = GUICtrlCreateInput("", 420, 105, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input2 = GUICtrlCreateInput("", 700, 105, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("Geburtsdatum:", 345, 169, 111, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input3 = GUICtrlCreateInput("DD.MM.YYYY", 420, 169, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label4 = GUICtrlCreateLabel("PLZ / Wohnort:", 600, 169, 106, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input4 = GUICtrlCreateInput("", 700, 169, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label5 = GUICtrlCreateLabel("Straße:", 345, 233, 57, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input5 = GUICtrlCreateInput("", 420, 233, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Neuen Patienten speichern", 700, 233, 161, 30, 0)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$TabSheet3 = GUICtrlCreateTabItem("Termine")
GUICtrlCreateTabItem("")
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
GUISetState(@SW_SHOW)While 1
$nMsg = GUIGetMsg(1)
Switch $nMsg[1] ; Window-Handle
Case $Form1
Switch $nMsg[0] ; Event
Case $GUI_EVENT_CLOSE
Exit
Case $PageControl1
If GUICtrlRead($PageControl1) = 0 ThenElseIf GUICtrlRead($PageControl1) = 1 Then
ElseIf GUICtrlRead($PageControl1) = 2 Then
EndIf
Case $Button1
$lastNum += 1
$Vorname = GUICtrlRead($Input1)
$Nachname = GUICtrlRead($Input2)
$Geburtsdatum = GUICtrlRead($Input3)
$PLZWohnort = GUICtrlRead($Input4)
$Strasse = GUICtrlRead($Input5)
IniWrite($INI, "Numbers", "last", $lastNum)
IniWrite($INI, "Patienten", $lastNum, $Vorname & '|' & $Nachname & '|' & $Geburtsdatum & '|' & $PLZWohnort & '|' & $Strasse)
GUICtrlSetData($Input1, "")
GUICtrlSetData($Input2, "")
GUICtrlSetData($Input3, "DD.MM.YYYY")
GUICtrlSetData($Input4, "")
GUICtrlSetData($Input5, "")
; Array mit Patienten-Daten neu einlesen
$aPatienten = IniReadSection($INI, "Patienten")
_FillListView()
Case $mnu_del
; Eintrag aus INI löschen:
$index = _GUICtrlListView_GetSelectedIndices($Listview1)
$del_Key = _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $index, 0)
IniDelete($INI, "Patienten", $del_key)
; Array mit Patienten-Daten neu einlesen
$aPatienten = IniReadSection($INI, "Patienten")
; entfernt Eintrag aus Liste:
_GUICtrlListView_DeleteItemsSelected($Listview1)
Case $Pic6
_AnimButton($Form1, $Pic6)
_Close()EndSwitch
EndSwitch
WEnd_GUICtrlListView_DeleteAllItems($Listview1)
If $lastNum = 9999 Then Return
For $i = 1 To UBound($aPatienten) -1
GUICtrlCreateListViewItem($aPatienten[$i][0] & '|' & $aPatienten[$i][1], $Listview1)
Next
EndFuncFunc _LeftDblClick($Info) ; Inhalt der angeklickten Spalte wird in GUI gezeigt
Local $indx_Item = $Info[3], $indx_Sub = $Info[4]
GUICtrlSetData($lb_Patient, _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $indx_Item, $indx_Sub))
GUISetState(@SW_SHOW, $Form2)
EndFunc
Func _Close()
Exit
EndFunc
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $ListView1
If Not IsHWnd($ListView1) Then $hWndListView = GUICtrlGetHandle($ListView1)$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $LVN_COLUMNCLICK ; A column was clicked
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
;~ _ColumnClick($aInfo)
Case $LVN_DELETEITEM ; An item is about to be deleted
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
;~ _ItemDeleted($aInfo)
Case $LVN_HOTTRACK ; Sent by a list-view control when the user moves the mouse over an item
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
Return 0 ; allow the list view to perform its normal track select processing.
;Return 1 ; the item will not be selected.
;~ _HottTrackItem($aInfo)
Case $LVN_KEYDOWN ; A key has been pressed
Local $tInfo = DllStructCreate($tagNMLVKEYDOWN, $ilParam)
Local $aInfo[5] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "VKey"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _KeyDown($aInfo)
Case $NM_CLICK ; Sent by a list-view control when the user clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _LeftClick($aInfo)
Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
_LeftDblClick($aInfo)
Case $NM_KILLFOCUS ; The control has lost the input focus
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _LostFocus($aInfo)
Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
; Return 1 ; not to allow the default processing
Return 0 ; allow the default processing
;~ _RightClick($aInfo)
Case $NM_RDBLCLK ; Sent by a list-view control when the user double-clicks an item with the right mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _RightDblClick($aInfo)
Case $NM_RETURN ; The control has the input focus and that the user has pressed the ENTER key
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _InputFocusReturn($aInfo)
Case $NM_SETFOCUS ; The control has received the input focus
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _SetFocus($aInfo)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Func _AnimButton($IDgui, $IDbtn, $delay=100);Animiert bilder als button, funktion an sich von BugFix
Local $pos = ControlGetPos($IDgui, '', $IDbtn)
Local $pWin = WinGetPos($IDgui)
ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1]+2, $pos[2]-2, $pos[3]-2)
Sleep($delay)
ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1], $pos[2], $pos[3])
EndFunc ;==> _AnimButton -
Hab es jetzt nochmal untergeladen. ist zwar jetzt nichts gegen dich, aber in der Liste ist glaub ich noch irgendwo ein Fehler.(Ich muss mal schauen ob ich ihn finde)
P.S.: Die exe funktioniert bei mir.
P.S.S: Ganz schön viele Fehler -
- Offizieller Beitrag
Kann es eventuell sein das du die Function _FillListView hierher hast ?http://www.autoitscript.com/forum/index.php?showtopic=67615
Wenn ja dann solltest du es auch in deinen Scriptcode einbinden .EDIT:
Hab den code mal soweit geändert das des Prog wenigstens Compiliert wird und startet . Die INCLUDES hab ich mit OrganizeInclude angepasst und die Function
_FillListView von hier http://www.autoitscript.com/forum/index.php?showtopic=67615 eingefügt.Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <StructureConstants.au3>
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.10.0
Author: SirocoolScript Function:
[/autoit] [autoit][/autoit] [autoit]
Template AutoIt script.
#ce ----------------------------------------------------------------------------; Script Start - Add your code below here
[/autoit] [autoit][/autoit] [autoit]
Dim $ver = "1.0.0"
Local $INI = @ScriptDir & "\Patienten.ini"; nur zum Testen:
[/autoit] [autoit][/autoit] [autoit]
If Not FileExists($INI) Then
IniWrite($INI, "Patienten", 10000, "Peter|Lustig|11.11.1956|12345 Grüner-Wald|Bauwagen 1")
IniWrite($INI, "Patienten", 10001, "Marion|Rosenbaum|08.12.1987|33445 Irgendwo|Am Feld 35")
IniWrite($INI, "Patienten", 10002, "Max|Mustermann|12.12.19744556 Musterdorf|Mustergasse 17")
IniWrite($INI, "Numbers", "last", 10002)
EndIf
; Ende Test-INIGlobal $aPatienten = IniReadSection($INI, "Patienten")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Global $Listview1,$Form2,$lb_Patient
Local $lastNum = IniRead($INI, "Numbers", "last", 9999)If FileExists("C:\artzt\images\bg.bmp") Then
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_Haupt()
Else
DirCreate("C:\artzt\images\")
FileInstall("images\Close.bmp","C:\artzt\images\close.bmp")
FileInstall("images\bg.bmp","C:\artzt\images\bg.bmp")
Sleep(500)
_Haupt()
EndIf
Func _Haupt()
$Form1 = GUICreate("Artzt v.1.0.0", 900, 600, -1, -1,$WS_POPUP)
GUISetBkColor("C:\artzt\images\bg.gif")
$Pic6 = GUICtrlCreatePic("C:\artzt\images\close.bmp", 858, 0, 42, 40, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUICtrlSetCursor (-1, 0)
$Pic7 = GUICtrlCreatePic("C:\artzt\images\bg.bmp", 0, 0, 900, 600, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$WS_DISABLED))
$PageControl1 = GUICtrlCreateTab(8, 56, 900, 600)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("Patienten")
$Listview1 = GUICtrlCreateListView("Nr|Vorname|Nachname|Geburtsdatum|PLZ / Wohnort| Straße", 340, 361, 559, 200)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
; ### hier Kontextmenü für ListView einfügen:
$mnu = GUICtrlCreateContextMenu($Listview1)
$mnu_del = GUICtrlCreateMenuItem('Patient Löschen', $mnu)
; ### Ende Kontextmenü
$Label1 = GUICtrlCreateLabel("Vorname:", 345, 105, 73, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Nachname:", 600, 105, 85, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input1 = GUICtrlCreateInput("", 420, 105, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input2 = GUICtrlCreateInput("", 700, 105, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("Geburtsdatum:", 345, 169, 111, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input3 = GUICtrlCreateInput("DD.MM.YYYY", 420, 169, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label4 = GUICtrlCreateLabel("PLZ / Wohnort:", 600, 169, 106, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input4 = GUICtrlCreateInput("", 700, 169, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label5 = GUICtrlCreateLabel("Straße:", 345, 233, 57, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input5 = GUICtrlCreateInput("", 420, 233, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Neuen Patienten speichern", 700, 233, 161, 30, 0)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$TabSheet3 = GUICtrlCreateTabItem("Termine")
GUICtrlCreateTabItem("")
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg(1)
Switch $nMsg[1] ; Window-Handle
Case $Form1
Switch $nMsg[0] ; Event
Case $GUI_EVENT_CLOSE
Exit
Case $PageControl1
If GUICtrlRead($PageControl1) = 0 ThenElseIf GUICtrlRead($PageControl1) = 1 Then
[/autoit] [autoit][/autoit] [autoit]ElseIf GUICtrlRead($PageControl1) = 2 Then
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]
Case $Button1
$lastNum += 1
$Vorname = GUICtrlRead($Input1)
$Nachname = GUICtrlRead($Input2)
$Geburtsdatum = GUICtrlRead($Input3)
$PLZWohnort = GUICtrlRead($Input4)
$Strasse = GUICtrlRead($Input5)
IniWrite($INI, "Numbers", "last", $lastNum)
IniWrite($INI, "Patienten", $lastNum, $Vorname & '|' & $Nachname & '|' & $Geburtsdatum & '|' & $PLZWohnort & '|' & $Strasse)
GUICtrlSetData($Input1, "")
GUICtrlSetData($Input2, "")
GUICtrlSetData($Input3, "DD.MM.YYYY")
GUICtrlSetData($Input4, "")
GUICtrlSetData($Input5, "")
; Array mit Patienten-Daten neu einlesen
$aPatienten = IniReadSection($INI, "Patienten")
_FillListView()
Case $mnu_del
; Eintrag aus INI löschen:
$index = _GUICtrlListView_GetSelectedIndices($Listview1)
$del_Key = _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $index, 0)
IniDelete($INI, "Patienten", $del_key)
; Array mit Patienten-Daten neu einlesen
$aPatienten = IniReadSection($INI, "Patienten")
; entfernt Eintrag aus Liste:
_GUICtrlListView_DeleteItemsSelected($Listview1)
Case $Pic6
_AnimButton($Form1, $Pic6)
_Close()EndSwitch
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndSwitch
WEnd_GUICtrlListView_DeleteAllItems($Listview1)
[/autoit] [autoit][/autoit] [autoit]
If $lastNum = 9999 Then Return
For $i = 1 To UBound($aPatienten) -1
GUICtrlCreateListViewItem($aPatienten[$i][0] & '|' & $aPatienten[$i][1], $Listview1)
Next
EndFuncFunc _LeftDblClick($Info) ; Inhalt der angeklickten Spalte wird in GUI gezeigt
[/autoit] [autoit][/autoit] [autoit]
Local $indx_Item = $Info[3], $indx_Sub = $Info[4]
GUICtrlSetData($lb_Patient, _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $indx_Item, $indx_Sub))
GUISetState(@SW_SHOW, $Form2)
EndFunc
Func _Close()
Exit
EndFunc
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $ListView1
If Not IsHWnd($ListView1) Then $hWndListView = GUICtrlGetHandle($ListView1)$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $LVN_COLUMNCLICK ; A column was clicked
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
;~ _ColumnClick($aInfo)
Case $LVN_DELETEITEM ; An item is about to be deleted
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
;~ _ItemDeleted($aInfo)
Case $LVN_HOTTRACK ; Sent by a list-view control when the user moves the mouse over an item
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
Return 0 ; allow the list view to perform its normal track select processing.
;Return 1 ; the item will not be selected.
;~ _HottTrackItem($aInfo)
Case $LVN_KEYDOWN ; A key has been pressed
Local $tInfo = DllStructCreate($tagNMLVKEYDOWN, $ilParam)
Local $aInfo[5] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "VKey"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _KeyDown($aInfo)
Case $NM_CLICK ; Sent by a list-view control when the user clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _LeftClick($aInfo)
Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
_LeftDblClick($aInfo)
Case $NM_KILLFOCUS ; The control has lost the input focus
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _LostFocus($aInfo)
Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
; Return 1 ; not to allow the default processing
Return 0 ; allow the default processing
;~ _RightClick($aInfo)
Case $NM_RDBLCLK ; Sent by a list-view control when the user double-clicks an item with the right mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _RightDblClick($aInfo)
Case $NM_RETURN ; The control has the input focus and that the user has pressed the ENTER key
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _InputFocusReturn($aInfo)
Case $NM_SETFOCUS ; The control has received the input focus
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _SetFocus($aInfo)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Func _AnimButton($IDgui, $IDbtn, $delay=100);Animiert bilder als button, funktion an sich von BugFix
Local $pos = ControlGetPos($IDgui, '', $IDbtn)
Local $pWin = WinGetPos($IDgui)
ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1]+2, $pos[2]-2, $pos[3]-2)
Sleep($delay)
ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1], $pos[2], $pos[3])
EndFunc ;==> _AnimButton
Func _FillListView()
$GetItems = _FileListToArray(@DesktopDir)
For $I = 1 To $GetItems[0]
If StringInStr($GetItems[$I], ".") = 1 Then Beep(8000, 100)
Next
EndFuncFunc _FileListToArray($Path, $Filter = "*")
[/autoit]
Local $Search, $File, $FileList[1]
$Search = FileFindFirstFile($Path & "\" & $Filter)
While 1
$File = FileFindNextFile($Search)
If @error Then ExitLoop
ReDim $FileList[UBound($FileList) + 1]
$FileList[0] += 1
$FileList[UBound($FileList) - 1] = $File
WEnd
FileClose($Search)
Return $FileList
EndFunc ;==>_Ich denke des ist ne gute Grundlage um an die BUGSUCHE zu gehen .
-
http://s11b.directupload.net/file/d/1629/n392gks7_jpg.htm
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <StructureConstants.au3>
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.10.0
Author: SirocoolScript Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------; Script Start - Add your code below here
Dim $ver = "1.0.0"
Local $INI = @ScriptDir & "\Patienten.ini"; nur zum Testen:
If Not FileExists($INI) Then
IniWrite($INI, "Patienten", 10000, "Peter|Lustig|11.11.1956|12345 Grüner-Wald|Bauwagen 1")
IniWrite($INI, "Patienten", 10001, "Marion|Rosenbaum|08.12.1987|33445 Irgendwo|Am Feld 35")
IniWrite($INI, "Patienten", 10002, "Max|Mustermann|12.12.19744556 Musterdorf|Mustergasse 17")
IniWrite($INI, "Numbers", "last", 10002)
EndIf
; Ende Test-INIGlobal $aPatienten = IniReadSection($INI, "Patienten")
Global $Listview1,$Form2,$lb_Patient
Local $lastNum = IniRead($INI, "Numbers", "last", 9999)If FileExists("C:\artzt\images\bg.bmp") Then
_Haupt()
Else
DirCreate("C:\artzt\images\")
FileInstall("images\Close.bmp","C:\artzt\images\close.bmp")
FileInstall("images\bg.bmp","C:\artzt\images\bg.bmp")
Sleep(500)
_Haupt()
EndIf
Func _Haupt()
$Form1 = GUICreate("Artzt v.1.0.0", 900, 600, -1, -1,$WS_POPUP)
GUISetBkColor("C:\artzt\images\bg.gif")
$Pic6 = GUICtrlCreatePic("C:\artzt\images\close.bmp", 858, 0, 42, 40, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUICtrlSetCursor (-1, 0)
$Pic7 = GUICtrlCreatePic("C:\artzt\images\bg.bmp", 0, 0, 900, 600, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$WS_DISABLED))
$PageControl1 = GUICtrlCreateTab(8, 56, 900, 600)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("Patienten")
$Listview1 = GUICtrlCreateListView("Nr|Vorname|Nachname|Geburtsdatum|PLZ / Wohnort| Straße", 340, 361, 559, 200)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
; ### hier Kontextmenü für ListView einfügen:
$mnu = GUICtrlCreateContextMenu($Listview1)
$mnu_del = GUICtrlCreateMenuItem('Patient Löschen', $mnu)
; ### Ende Kontextmenü
$Label1 = GUICtrlCreateLabel("Vorname:", 345, 105, 73, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Nachname:", 600, 105, 85, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input1 = GUICtrlCreateInput("", 420, 105, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input2 = GUICtrlCreateInput("", 700, 105, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("Geburtsdatum:", 345, 169, 111, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input3 = GUICtrlCreateInput("DD.MM.YYYY", 420, 169, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label4 = GUICtrlCreateLabel("PLZ / Wohnort:", 600, 169, 106, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input4 = GUICtrlCreateInput("", 700, 169, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label5 = GUICtrlCreateLabel("Straße:", 345, 233, 57, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input5 = GUICtrlCreateInput("", 420, 233, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Neuen Patienten speichern", 700, 233, 161, 30, 0)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$TabSheet3 = GUICtrlCreateTabItem("Termine")
GUICtrlCreateTabItem("")
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
GUISetState(@SW_SHOW)While 1
$nMsg = GUIGetMsg(1)
Switch $nMsg[1] ; Window-Handle
Case $Form1
Switch $nMsg[0] ; Event
Case $GUI_EVENT_CLOSE
Exit
Case $PageControl1
If GUICtrlRead($PageControl1) = 0 ThenElseIf GUICtrlRead($PageControl1) = 1 Then
ElseIf GUICtrlRead($PageControl1) = 2 Then
EndIf
Case $Button1
$lastNum += 1
$Vorname = GUICtrlRead($Input1)
$Nachname = GUICtrlRead($Input2)
$Geburtsdatum = GUICtrlRead($Input3)
$PLZWohnort = GUICtrlRead($Input4)
$Strasse = GUICtrlRead($Input5)
IniWrite($INI, "Numbers", "last", $lastNum)
IniWrite($INI, "Patienten", $lastNum, $Vorname & '|' & $Nachname & '|' & $Geburtsdatum & '|' & $PLZWohnort & '|' & $Strasse)
GUICtrlSetData($Input1, "")
GUICtrlSetData($Input2, "")
GUICtrlSetData($Input3, "DD.MM.YYYY")
GUICtrlSetData($Input4, "")
GUICtrlSetData($Input5, "")
; Array mit Patienten-Daten neu einlesen
$aPatienten = IniReadSection($INI, "Patienten")
_FillListView()
Case $mnu_del
; Eintrag aus INI löschen:
$index = _GUICtrlListView_GetSelectedIndices($Listview1)
$del_Key = _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $index, 0)
IniDelete($INI, "Patienten", $del_key)
; Array mit Patienten-Daten neu einlesen
$aPatienten = IniReadSection($INI, "Patienten")
; entfernt Eintrag aus Liste:
_GUICtrlListView_DeleteItemsSelected($Listview1)
Case $Pic6
_AnimButton($Form1, $Pic6)
_Close()EndSwitch
EndSwitch
WEnd_GUICtrlListView_DeleteAllItems($Listview1)
If $lastNum = 9999 Then Return
For $i = 1 To UBound($aPatienten) -1
GUICtrlCreateListViewItem($aPatienten[$i][0] & '|' & $aPatienten[$i][1], $Listview1)
Next
EndFuncFunc _LeftDblClick($Info) ; Inhalt der angeklickten Spalte wird in GUI gezeigt
Local $indx_Item = $Info[3], $indx_Sub = $Info[4]
GUICtrlSetData($lb_Patient, _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $indx_Item, $indx_Sub))
GUISetState(@SW_SHOW, $Form2)
EndFunc
Func _Close()
Exit
EndFunc
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $ListView1
If Not IsHWnd($ListView1) Then $hWndListView = GUICtrlGetHandle($ListView1)$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $LVN_COLUMNCLICK ; A column was clicked
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
;~ _ColumnClick($aInfo)
Case $LVN_DELETEITEM ; An item is about to be deleted
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
;~ _ItemDeleted($aInfo)
Case $LVN_HOTTRACK ; Sent by a list-view control when the user moves the mouse over an item
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
Return 0 ; allow the list view to perform its normal track select processing.
;Return 1 ; the item will not be selected.
;~ _HottTrackItem($aInfo)
Case $LVN_KEYDOWN ; A key has been pressed
Local $tInfo = DllStructCreate($tagNMLVKEYDOWN, $ilParam)
Local $aInfo[5] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "VKey"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _KeyDown($aInfo)
Case $NM_CLICK ; Sent by a list-view control when the user clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _LeftClick($aInfo)
Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
_LeftDblClick($aInfo)
Case $NM_KILLFOCUS ; The control has lost the input focus
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _LostFocus($aInfo)
Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
; Return 1 ; not to allow the default processing
Return 0 ; allow the default processing
;~ _RightClick($aInfo)
Case $NM_RDBLCLK ; Sent by a list-view control when the user double-clicks an item with the right mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _RightDblClick($aInfo)
Case $NM_RETURN ; The control has the input focus and that the user has pressed the ENTER key
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _InputFocusReturn($aInfo)
Case $NM_SETFOCUS ; The control has received the input focus
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _SetFocus($aInfo)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Func _AnimButton($IDgui, $IDbtn, $delay=100);Animiert bilder als button, funktion an sich von BugFix
Local $pos = ControlGetPos($IDgui, '', $IDbtn)
Local $pWin = WinGetPos($IDgui)
ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1]+2, $pos[2]-2, $pos[3]-2)
Sleep($delay)
ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1], $pos[2], $pos[3])
EndFunc ;==> _AnimButton
Func _FillListView()
_GUICtrlListView_DeleteAllItems($Listview1)
If $lastNum = 9999 Then Return
For $i = 1 To UBound($aPatienten) -1
GUICtrlCreateListViewItem($aPatienten[$i][0] & '|' & $aPatienten[$i][1], $Listview1)
Next
EndFuncFunc _FileListToArray($Path, $Filter = "*")
Local $Search, $File, $FileList[1]
$Search = FileFindFirstFile($Path & "\" & $Filter)
While 1
$File = FileFindNextFile($Search)
If @error Then ExitLoop
ReDim $FileList[UBound($FileList) + 1]
$FileList[0] += 1
$FileList[UBound($FileList) - 1] = $File
WEnd
FileClose($Search)
Return $FileList
EndFunc ;==>_ -
- Offizieller Beitrag
Habe nen Fehler gefunden deine Zeile 23 sollte so heißen
[autoit]IniWrite($INI, "Patienten", 10002, "Max|Mustermann|12.12.1974|44556 Musterdorf|Mustergasse 17")
[/autoit]
[autoit]
Es wäre auch gut wenn die Patienten gleich bei Programstart in der Gui angezeigt werden nicht erst wenn man einen Patienten hinzufügt .
Edit: Benenne Dein Programm mal um in Arzt.
Edit2: einfach nach deinem Code :GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
[/autoit]
GUISetState(@SW_SHOW)das einfügen :
[autoit]_FillListView()
[/autoit]dann klappt die Patientenanzeige bei Programmstart .
-
Überarbeitet Version ist ihr zum download ich danke alle die mit geholfen haben aber ich finde so zieht es frundlicher aus für ein kind
-
Dass hier so viele schreiben hab ich am Anfang garnicht gedacht.
Ich habs mal weiter überarbeitet. Man kann jetzt neue Einträge machen.
Schauts euch einfach mal an.
Das Speichern vom Edit ist noch nicht eingebaut und über das Kontextmenü -> Patient bearbeiten kommt man noch nicht zum bearbeiten (ich wusste nicht wie man das machen soll).
EDIT: Hab noch ne Sortierungsfunktion eingebautEDIT 2: Kalender hinzugefügt (aber noch keine Funktion eingebaut)
Spoiler anzeigen
[autoit]#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GUIConstants.au3>;Global Const $LVFI_PARAM = 0x0001
[/autoit] [autoit][/autoit] [autoit]
;Global Const $LVIF_TEXT = 0x0001
;Global Const $LVM_FIRST = 0x1000
Global Const $LVM_GETITEM = $LVM_FIRST + 5
;Global Const $LVM_FINDITEM = $LVM_FIRST + 13
;Global Const $LVM_SETSELECTEDCOLUMN= $LVM_FIRST + 140Dim $nCurCol = -1
[/autoit] [autoit][/autoit] [autoit]
Dim $nSortDir = 1
Dim $bSet = 0
Dim $nCol = -1Local $INI = @ScriptDir & "\Patienten.ini"
[/autoit] [autoit][/autoit] [autoit]
; nur zum Testen:
If Not FileExists($INI) Then
IniWrite($INI, "Patienten", 10000, "Peter|Lustig|11.11.1956|12345 Grüner-Wald|Bauwagen 1")
IniWrite($INI, "Patienten", 10001, "Marion|Rosenbaum|08.12.1987|33445 Irgendwo|Am Feld 35")
IniWrite($INI, "Patienten", 10002, "Max|Mustermann|12.12.1978|44556 Musterdorf|Mustergasse 17")
IniWrite($INI, "Numbers", "last", 10002)
EndIf
; Ende Test-INIGlobal $aPatienten = IniReadSection($INI, "Patienten")
[/autoit] [autoit][/autoit] [autoit]
Local $lastNum = IniRead($INI, "Numbers", "last", 9999)
Dim $date = @YEAR & "/" & @MON & "/" & @MDAY#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Arzt", 1017, 736,0,0)
$PageControl1 = GUICtrlCreateTab(8, 56, 1007, 707)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("Patienten")
$Listview1 = GUICtrlCreateListView("Nr |Vorname|Nachname|Geburtsdatum|PLZ / Wohnort| Straße", 24, 152, 969, 552)
GUICtrlRegisterListViewSort(-1, "LVSort")
GUICtrlSetFont($Listview1, 8, 400, 0, "MS Sans Serif")
; ### hier Kontextmenü für ListView einfügen:
$mnu = GUICtrlCreateContextMenu($Listview1)
$mnu_edit = GUICtrlCreateMenuItem('Patient bearbeiten', $mnu)
$mnu_del = GUICtrlCreateMenuItem('Patient löschen', $mnu)
; ### Ende Kontextmenü
$TabSheet2 = GUICtrlCreateTabItem("Neuer Patient")
$Label1 = GUICtrlCreateLabel("Vorname:", 28, 105, 73, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Nachname:", 28, 137, 85, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input1 = GUICtrlCreateInput("", 110, 105, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input2 = GUICtrlCreateInput("", 110, 137, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("Geburtsdatum:", 28, 169, 111, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input3 = GUICtrlCreateInput("DD.MM.YYYY", 110, 169, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label4 = GUICtrlCreateLabel("PLZ / Wohnort:", 28, 201, 106, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input4 = GUICtrlCreateInput("", 110, 201, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label5 = GUICtrlCreateLabel("Straße:", 28, 233, 57, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input5 = GUICtrlCreateInput("", 110, 233, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Neuen Patienten speichern", 110, 272, 161, 30, 0)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$TabSheet3 = GUICtrlCreateTabItem("Termine")
$MonthCal1 = GUICtrlCreateMonthCal($date, 24, 88, 977, 630)
GUICtrlCreateTabItem("")
#EndRegion ### START Koda GUI section ### Form=#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form2 = GUICreate("Patient bearbeiten", 1017, 736,0,0)
$Edit1 = GUICtrlCreateEdit("", 16, 80, 985, 569,0x1000)
$Label6 = GUICtrlCreateLabel("Nr.:", 16, 32, 21, 17)
$Label7 = GUICtrlCreateLabel("Vorname:", 88, 32, 49, 17)
$Label8 = GUICtrlCreateLabel("Nachname:", 272, 32, 59, 17)
$Label9 = GUICtrlCreateLabel("Geburtsdatum:", 464, 32, 73, 17)
$Label10 = GUICtrlCreateLabel("PLZ / Wohnort:", 616, 32, 79, 17)
$Label11 = GUICtrlCreateLabel("Straße:", 840, 32, 38, 17)
$Input6 = GUICtrlCreateInput("", 40, 32, 41, 21)
$Input7 = GUICtrlCreateInput("", 144, 32, 121, 21)
$Input8 = GUICtrlCreateInput("", 336, 32, 121, 21)
$Input9 = GUICtrlCreateInput("", 544, 32, 65, 21)
$Input10 = GUICtrlCreateInput("", 696, 32, 137, 21)
$Input11 = GUICtrlCreateInput("", 880, 32, 121, 21)
$Button2 = GUICtrlCreateButton("Neuer Eintrag", 16, 664, 121, 57, 0)
$Button3 = GUICtrlCreateButton("Daten speichern", 144, 664, 121, 57, 0)
GUISetState(@SW_HIDE)
#EndRegion ### END Koda GUI section ###_FillListView()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW, $Form1)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg(1)
Switch $nMsg[1] ; Window-Handle
Case $Form1
Switch $nMsg[0] ; Event
Case $GUI_EVENT_CLOSE
Exit
Case $PageControl1
If GUICtrlRead($PageControl1) = 0 Then
ElseIf GUICtrlRead($PageControl1) = 1 Then
ElseIf GUICtrlRead($PageControl1) = 2 Then
GUICtrlSetData($MonthCal1,$date)
EndIf
Case $Button1
$lastNum += 1
$Vorname = GUICtrlRead($Input1)
$Nachname = GUICtrlRead($Input2)
$Geburtsdatum = GUICtrlRead($Input3)
$PLZWohnort = GUICtrlRead($Input4)
$Strasse = GUICtrlRead($Input5)
IniWrite($INI, "Numbers", "last", $lastNum)
IniWrite($INI, "Patienten", $lastNum, $Vorname & '|' & $Nachname & '|' & $Geburtsdatum & '|' & $PLZWohnort & '|' & $Strasse)
GUICtrlSetData($Input1, "")
GUICtrlSetData($Input2, "")
GUICtrlSetData($Input3, "DD.MM.YYYY")
GUICtrlSetData($Input4, "")
GUICtrlSetData($Input5, "")
; Array mit Patienten-Daten neu einlesen
$aPatienten = IniReadSection($INI, "Patienten")
_FillListView()
Case $mnu_del
; Eintrag aus INI löschen:
$index = _GUICtrlListView_GetSelectedIndices($Listview1)
$del_Key = _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $index, 0)
IniDelete($INI, "Patienten", $del_key)
; Array mit Patienten-Daten neu einlesen
$aPatienten = IniReadSection($INI, "Patienten")
; entfernt Eintrag aus Liste:
_GUICtrlListView_DeleteItemsSelected($Listview1)
Case $Listview1
$bSet = 0
$nCurCol = $nCol
GUICtrlSendMsg($Listview1, $LVM_SETSELECTEDCOLUMN, GUICtrlGetState($Listview1), 0)
DllCall("user32.dll", "int", "InvalidateRect", "hwnd", GUICtrlGetHandle($Listview1), "int", 0, "int", 1)
;~ Case $mnu_edit
;~ was muss hier rein???
EndSwitch
Case $Form2
Switch $nMsg[0] ; Event
Case $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE, $Form2)
Case $Button2 ; Neuer Eintrag
$edit = GUICtrlRead($edit1)
If $edit = "" Then
$edit = "[" & @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & "] :"
Else
$edit = $edit & @CRLF & @CRLF & @CRLF & "[" & @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & "] :"
EndIf
GUICtrlSetData($edit1,$edit)
EndSwitch
EndSwitch
WEndFunc _FillListView()
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_DeleteAllItems($Listview1)
If $lastNum = 9999 Then Return
For $i = 1 To UBound($aPatienten) -1
GUICtrlCreateListViewItem($aPatienten[$i][0] & '|' & $aPatienten[$i][1], $Listview1)
Next
EndFuncFunc _LeftDblClick($Info) ; Inhalt der angeklickten Zeile (alle Spalten) wird in GUI gezeigt
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData($Input6 , _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $Info[3], 0))
GUICtrlSetData($Input7 , _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $Info[3], 1))
GUICtrlSetData($Input8 , _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $Info[3], 2))
GUICtrlSetData($Input9 , _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $Info[3], 3))
GUICtrlSetData($Input10 , _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $Info[3], 4))
GUICtrlSetData($Input11 , _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $Info[3], 5))
GUISetState(@SW_SHOW, $Form2)
EndFuncFunc WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $ListView1
If Not IsHWnd($ListView1) Then $hWndListView = GUICtrlGetHandle($ListView1)$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
_LeftDblClick($aInfo)
Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button
Return $GUI_RUNDEFMSG ; allow the default processing
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY; Unsere Sortier-Callback-Funktionen
[/autoit] [autoit][/autoit] [autoit]
Func LVSort($hWnd, $nItem1, $nItem2, $nColumn)
Local $nSort
; Schalte die Sortierrichtung um
If $nColumn = $nCurCol Then
If Not $bSet Then
$nSortDir = $nSortDir * -1
$bSet = 1
EndIf
Else
$nSortDir = 1
EndIf
$nCol = $nColumn
$val1 = GetSubItemText($Listview1, $nItem1, $nColumn)
$val2 = GetSubItemText($Listview1, $nItem2, $nColumn)
; Wenn es die dritte Spalte ist (startet bei 0) dann vergleiche die Daten
If $nColumn = 2 Then
$val1 = StringRight($val1, 4) & StringMid($val1, 4, 2) & StringLeft($val1, 2)
$val2 = StringRight($val2, 4) & StringMid($val2, 4, 2) & StringLeft($val2, 2)
EndIf
$nResult = 0 ; Keine Änderung in item1 und item2 Positionen
If $val1 < $val2 Then
$nResult = -1 ; Setze item2 vor item1
ElseIf $val1 > $val2 Then
$nResult = 1 ; Setze item2 hinter item1
EndIf$nResult = $nResult * $nSortDir
[/autoit] [autoit][/autoit] [autoit]
Return $nResult
EndFunc; Text eines Baumansicht-Elements in einer bestimmten Spalte abrufen
[/autoit] [autoit][/autoit] [autoit]
Func GetSubItemText($nCtrlID, $nItemID, $nColumn)
Local $stLvfi = DllStructCreate("uint;ptr;int;int[2];int")
DllStructSetData($stLvfi, 1, $LVFI_PARAM)
DllStructSetData($stLvfi, 3, $nItemID)Local $stBuffer = DllStructCreate("char[260]")
[/autoit] [autoit][/autoit] [autoit]
$nIndex = GUICtrlSendMsg($nCtrlID, $LVM_FINDITEM, -1, DllStructGetPtr($stLvfi));
Local $stLvi = DllStructCreate("uint;int;int;uint;uint;ptr;int;int;int;int")
DllStructSetData($stLvi, 1, $LVIF_TEXT)
DllStructSetData($stLvi, 2, $nIndex)
DllStructSetData($stLvi, 3, $nColumn)
DllStructSetData($stLvi, 6, DllStructGetPtr($stBuffer))
DllStructSetData($stLvi, 7, 260)GUICtrlSendMsg($nCtrlID, $LVM_GETITEM, 0, DllStructGetPtr($stLvi));
[/autoit] [autoit][/autoit] [autoit]$sItemText = DllStructGetData($stBuffer, 1)
[/autoit] [autoit][/autoit] [autoit]$stLvi = 0
[/autoit]
$stLvfi = 0
$stBuffer = 0
Return $sItemText
EndFunc -
aber werde mal schaun ob ich dein neuen code auch in den von mir mit rein bekomme( meine deine neuen sachen )
wir müssen uns nur enscheiden welchen code wir weiter hin nehmmen -
Wenn ich das Progg mir so ansehe fallen mir zwei Sachen auf.
1.) Wichtig wäre die Erfassung der Versicherungsnummer und weiterhin dort zu beachten, das man auch "Privatpat." eintragen kann.
2.) Es fehlt ein Berichtsfenster. Ich denke mal, wenn ein Bereitschaftsarzt Daten beim Patienten zuhause erfassen würde und das z. B. in der Nachtbereitschaft, wäre es sehr gut, wenn er auch Info's eingeben kann, was er für Untersuchungen gemacht hat oder welche weiteren Wege er eingeleitet hat.
Aber ansonsten istd as Projekt doch ordentlich in Gange und eine gute Idee, wo man auch was lernen kann.
LG,
Alina. -
Wenn ich das Progg mir so ansehe fallen mir zwei Sachen auf.
1.) Wichtig wäre die Erfassung der Versicherungsnummer und weiterhin dort zu beachten, das man auch "Privatpat." eintragen kann.
2.) Es fehlt ein Berichtsfenster. Ich denke mal, wenn ein Bereitschaftsarzt Daten beim Patienten zuhause erfassen würde und das z. B. in der Nachtbereitschaft, wäre es sehr gut, wenn er auch Info's eingeben kann, was er für Untersuchungen gemacht hat oder welche weiteren Wege er eingeleitet hat.
Aber ansonsten istd as Projekt doch ordentlich in Gange und eine gute Idee, wo man auch was lernen kann.
LG,
Alina.
1.) Ich weiß nicht ob du es im ersten Beitrag gelesen hast, aber dort habe ich geschrieben es geht um die Verwaltung von Kuscheltieren als Patienten. Die haben eher weniger eine Versicherungsnummer . Aber um es "normal" anzuwenden, wäre das sicher sinnvoll.
2.) Also bei meiner Version* ist so ein Berichtsfenster eingebaut. Lediglich die speicherfunktion fehlt noch.* [ offen ] "Arzt" Programm
-
So ich hab die Speicherfunktion für das Edit gemacht. Wenn man bei einem Patienten drin ist kann man auch dort die Daten( Vorname,Nachname,...) noch ändern. Gespeichert wird bei drunk auf den "Daten speichern" Button oder durch das "X" zum Fenster schließen.
Spoiler anzeigen
[autoit]#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GUIConstants.au3>;Global Const $LVFI_PARAM = 0x0001
[/autoit] [autoit][/autoit] [autoit]
;Global Const $LVIF_TEXT = 0x0001
;Global Const $LVM_FIRST = 0x1000
Global Const $LVM_GETITEM = $LVM_FIRST + 5
;Global Const $LVM_FINDITEM = $LVM_FIRST + 13
;Global Const $LVM_SETSELECTEDCOLUMN= $LVM_FIRST + 140Dim $nCurCol = -1
[/autoit] [autoit][/autoit] [autoit]
Dim $nSortDir = 1
Dim $bSet = 0
Dim $nCol = -1
Dim $nr, $patientendatenLocal $INI = @ScriptDir & "\Patienten.ini"
[/autoit] [autoit][/autoit] [autoit]
; nur zum Testen:
If Not FileExists($INI) Then
IniWrite($INI, "Patienten", 10000, "Peter|Lustig|11.11.1956|12345 Grüner-Wald|Bauwagen 1")
IniWrite($INI, "edit", 10000, "")
IniWrite($INI, "Patienten", 10001, "Marion|Rosenbaum|08.12.1987|33445 Irgendwo|Am Feld 35")
IniWrite($INI, "edit", 10001, "")
IniWrite($INI, "Patienten", 10002, "Max|Mustermann|12.12.1978|44556 Musterdorf|Mustergasse 17")
IniWrite($INI, "edit", 10002, "")
IniWrite($INI, "Numbers", "last", 10002)
EndIf
; Ende Test-INIGlobal $aPatienten = IniReadSection($INI, "Patienten")
[/autoit] [autoit][/autoit] [autoit]
Local $lastNum = IniRead($INI, "Numbers", "last", 9999)
Dim $date = @YEAR & "/" & @MON & "/" & @MDAY#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Arzt", 1017, 736,0,0)
$PageControl1 = GUICtrlCreateTab(8, 56, 1007, 707)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("Patienten")
$Listview1 = GUICtrlCreateListView("Nr |Vorname|Nachname|Geburtsdatum|PLZ / Wohnort| Straße", 24, 152, 969, 552)
GUICtrlRegisterListViewSort(-1, "LVSort")
GUICtrlSetFont($Listview1, 8, 400, 0, "MS Sans Serif")
; ### hier Kontextmenü für ListView einfügen:
$mnu = GUICtrlCreateContextMenu($Listview1)
$mnu_edit = GUICtrlCreateMenuItem('Patient bearbeiten', $mnu)
$mnu_del = GUICtrlCreateMenuItem('Patient löschen', $mnu)
; ### Ende Kontextmenü
$TabSheet2 = GUICtrlCreateTabItem("Neuer Patient")
$Label1 = GUICtrlCreateLabel("Vorname:", 28, 105, 73, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Nachname:", 28, 137, 85, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input1 = GUICtrlCreateInput("", 110, 105, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input2 = GUICtrlCreateInput("", 110, 137, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("Geburtsdatum:", 28, 169, 111, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input3 = GUICtrlCreateInput("DD.MM.YYYY", 110, 169, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label4 = GUICtrlCreateLabel("PLZ / Wohnort:", 28, 201, 106, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input4 = GUICtrlCreateInput("", 110, 201, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label5 = GUICtrlCreateLabel("Straße:", 28, 233, 57, 24)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Input5 = GUICtrlCreateInput("", 110, 233, 161, 22)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Neuen Patienten speichern", 110, 272, 161, 30, 0)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$TabSheet3 = GUICtrlCreateTabItem("Termine")
$MonthCal1 = GUICtrlCreateMonthCal($date, 24, 88, 977, 630)
GUICtrlCreateTabItem("")
#EndRegion ### START Koda GUI section ### Form=#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form2 = GUICreate("Patient bearbeiten", 1017, 736,0,0)
$Edit1 = GUICtrlCreateEdit("", 16, 80, 985, 569,0x1000)
$Label6 = GUICtrlCreateLabel("Nr.:", 16, 32, 21, 17)
$Label7 = GUICtrlCreateLabel("Vorname:", 88, 32, 49, 17)
$Label8 = GUICtrlCreateLabel("Nachname:", 272, 32, 59, 17)
$Label9 = GUICtrlCreateLabel("Geburtsdatum:", 464, 32, 73, 17)
$Label10 = GUICtrlCreateLabel("PLZ / Wohnort:", 616, 32, 79, 17)
$Label11 = GUICtrlCreateLabel("Straße:", 840, 32, 38, 17)
$Input6 = GUICtrlCreateInput("", 40, 32, 41, 21)
$Input7 = GUICtrlCreateInput("", 144, 32, 121, 21)
$Input8 = GUICtrlCreateInput("", 336, 32, 121, 21)
$Input9 = GUICtrlCreateInput("", 544, 32, 65, 21)
$Input10 = GUICtrlCreateInput("", 696, 32, 137, 21)
$Input11 = GUICtrlCreateInput("", 880, 32, 121, 21)
$Button2 = GUICtrlCreateButton("Neuer Eintrag", 16, 664, 121, 57, 0)
$Button3 = GUICtrlCreateButton("Daten speichern", 144, 664, 121, 57, 0)
$Button4 = GUICtrlCreateButton("Alle Berichte löschen", 272, 664, 121, 57, 0)
GUISetState(@SW_HIDE)
#EndRegion ### END Koda GUI section ###_FillListView()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW, $Form1)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg(1)
Switch $nMsg[1] ; Window-Handle
Case $Form1
Switch $nMsg[0] ; Event
Case $GUI_EVENT_CLOSE
Exit
Case $PageControl1
If GUICtrlRead($PageControl1) = 0 Then
ElseIf GUICtrlRead($PageControl1) = 1 Then
ElseIf GUICtrlRead($PageControl1) = 2 Then
GUICtrlSetData($MonthCal1,$date)
EndIf
Case $Button1
$lastNum += 1
$Vorname = GUICtrlRead($Input1)
$Nachname = GUICtrlRead($Input2)
$Geburtsdatum = GUICtrlRead($Input3)
$PLZWohnort = GUICtrlRead($Input4)
$Strasse = GUICtrlRead($Input5)
IniWrite($INI, "Numbers", "last", $lastNum)
IniWrite($INI, "Patienten", $lastNum, $Vorname & '|' & $Nachname & '|' & $Geburtsdatum & '|' & $PLZWohnort & '|' & $Strasse)
IniWrite($INI, "edit",$lastNum,"")
GUICtrlSetData($Input1, "")
GUICtrlSetData($Input2, "")
GUICtrlSetData($Input3, "DD.MM.YYYY")
GUICtrlSetData($Input4, "")
GUICtrlSetData($Input5, "")
; Array mit Patienten-Daten neu einlesen
$aPatienten = IniReadSection($INI, "Patienten")
_FillListView()
Case $mnu_del
; Eintrag aus INI löschen:
$index = _GUICtrlListView_GetSelectedIndices($Listview1)
$del_Key = _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $index, 0)
IniDelete($INI, "Patienten", $del_key)
; Array mit Patienten-Daten neu einlesen
$aPatienten = IniReadSection($INI, "Patienten")
; entfernt Eintrag aus Liste:
_GUICtrlListView_DeleteItemsSelected($Listview1)
Case $Listview1
$bSet = 0
$nCurCol = $nCol
GUICtrlSendMsg($Listview1, $LVM_SETSELECTEDCOLUMN, GUICtrlGetState($Listview1), 0)
DllCall("user32.dll", "int", "InvalidateRect", "hwnd", GUICtrlGetHandle($Listview1), "int", 0, "int", 1)
;~ Case $mnu_edit
;~ was muss hier rein???
EndSwitch
Case $Form2
Switch $nMsg[0] ; Event
Case $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE, $Form2)
$edit = GUICtrlRead($edit1)
IniWrite($INI,"edit",$nr,$edit)
Case $Button2 ; Neuer Eintrag
$edit = GUICtrlRead($edit1)
If $edit = "" Then
$edit = "[" & @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & "] :"
Else
$edit = $edit & @CRLF & @CRLF & @CRLF & "[" & @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & "] :"
EndIf
GUICtrlSetData($edit1,$edit)
Case $Button3
$edit = GUICtrlRead($edit1)
IniWrite($INI,"edit",$nr,$edit)
$nr = GUICtrlRead($Input6)
$patientendaten = GUICtrlRead($Input7) & "|" & GUICtrlRead($Input8) & "|" & GUICtrlRead($Input9) & "|" & GUICtrlRead($Input10) & "|" & GUICtrlRead($Input11)
IniWrite($INI,"Patienten",$nr,$patientendaten)
Case $Button4
GUICtrlSetData($edit1,"")
$nr = GUICtrlRead($Input6)
IniWrite($INI,"edit",$nr,"")
EndSwitch
EndSwitch
WEndFunc _FillListView()
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_DeleteAllItems($Listview1)
If $lastNum = 9999 Then Return
For $i = 1 To UBound($aPatienten) -1
GUICtrlCreateListViewItem($aPatienten[$i][0] & '|' & $aPatienten[$i][1], $Listview1)
Next
EndFuncFunc _LeftDblClick($Info) ; Inhalt der angeklickten Zeile (alle Spalten) wird in GUI gezeigt
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData($Input6 , _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $Info[3], 0))
GUICtrlSetData($Input7 , _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $Info[3], 1))
GUICtrlSetData($Input8 , _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $Info[3], 2))
GUICtrlSetData($Input9 , _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $Info[3], 3))
GUICtrlSetData($Input10 , _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $Info[3], 4))
GUICtrlSetData($Input11 , _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $Info[3], 5))
$nr = GUICtrlRead($Input6)
$edit= IniRead($INI,"edit",$nr,"")
GUICtrlSetData($Edit1,$edit)
GUISetState(@SW_SHOW, $Form2)
EndFuncFunc WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $ListView1
If Not IsHWnd($ListView1) Then $hWndListView = GUICtrlGetHandle($ListView1)$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
_LeftDblClick($aInfo)
Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button
Return $GUI_RUNDEFMSG ; allow the default processing
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY; Unsere Sortier-Callback-Funktionen
[/autoit] [autoit][/autoit] [autoit]
Func LVSort($hWnd, $nItem1, $nItem2, $nColumn)
Local $nSort
; Schalte die Sortierrichtung um
If $nColumn = $nCurCol Then
If Not $bSet Then
$nSortDir = $nSortDir * -1
$bSet = 1
EndIf
Else
$nSortDir = 1
EndIf
$nCol = $nColumn
$val1 = GetSubItemText($Listview1, $nItem1, $nColumn)
$val2 = GetSubItemText($Listview1, $nItem2, $nColumn)
; Wenn es die dritte Spalte ist (startet bei 0) dann vergleiche die Daten
If $nColumn = 2 Then
$val1 = StringRight($val1, 4) & StringMid($val1, 4, 2) & StringLeft($val1, 2)
$val2 = StringRight($val2, 4) & StringMid($val2, 4, 2) & StringLeft($val2, 2)
EndIf
$nResult = 0 ; Keine Änderung in item1 und item2 Positionen
If $val1 < $val2 Then
$nResult = -1 ; Setze item2 vor item1
ElseIf $val1 > $val2 Then
$nResult = 1 ; Setze item2 hinter item1
EndIf$nResult = $nResult * $nSortDir
[/autoit] [autoit][/autoit] [autoit]
Return $nResult
EndFunc; Text eines Baumansicht-Elements in einer bestimmten Spalte abrufen
[/autoit] [autoit][/autoit] [autoit]
Func GetSubItemText($nCtrlID, $nItemID, $nColumn)
Local $stLvfi = DllStructCreate("uint;ptr;int;int[2];int")
DllStructSetData($stLvfi, 1, $LVFI_PARAM)
DllStructSetData($stLvfi, 3, $nItemID)Local $stBuffer = DllStructCreate("char[260]")
[/autoit] [autoit][/autoit] [autoit]
$nIndex = GUICtrlSendMsg($nCtrlID, $LVM_FINDITEM, -1, DllStructGetPtr($stLvfi));
Local $stLvi = DllStructCreate("uint;int;int;uint;uint;ptr;int;int;int;int")
DllStructSetData($stLvi, 1, $LVIF_TEXT)
DllStructSetData($stLvi, 2, $nIndex)
DllStructSetData($stLvi, 3, $nColumn)
DllStructSetData($stLvi, 6, DllStructGetPtr($stBuffer))
DllStructSetData($stLvi, 7, 260)GUICtrlSendMsg($nCtrlID, $LVM_GETITEM, 0, DllStructGetPtr($stLvi));
[/autoit] [autoit][/autoit] [autoit]$sItemText = DllStructGetData($stBuffer, 1)
[/autoit] [autoit][/autoit] [autoit]$stLvi = 0
[/autoit]
$stLvfi = 0
$stBuffer = 0
Return $sItemText
EndFunc -
ihr der link dazu https://autoit.de/index.php?page…eadID=8902&
dann kannst du schaun wie er es gebaut hat nur mal ein anregung für dich weil du hast ja gesagt das noch nicht alles hast und weist wie es geht
-