Hallo an alle,
bin bei der Entwicklung eines Notizzettel-tools an ein Problem gestosen! hier erst mal mein bisheriges script:
[autoit]
#Include <WindowsConstants.au3>
#Include <GuiConstantsEx.au3>
#Include <File.au3>
#Include <EditConstants.au3>
#NoTrayIcon
Opt("TrayMenuMode", 1)
Opt("GUIResizeMode", 0)
If Not FileExists(@ScriptDir & "\data.ini") Then
_FileCreate(@ScriptDir & "\data.ini")
$sectionSystem="AnzahlNotizen=0" & @LF & "AnzahlErinnerungen=0" & @LF & "DesktopWidth=" & @DesktopWidth & @LF & "DesktopHeight=" & @DesktopHeight
IniWriteSection("data.ini", "SYSTEM", $sectionSystem)
Else
__rebuildNotes()
EndIf
$new=TrayCreateMenu("Neu")
$newNote=TrayCreateItem("Notiz", $new)
$newReminder=TrayCreateItem("Erinnerung", $new)
TrayCreateItem("")
$deleteAllItems=TrayCreateItem("Alle Einträge löschen")
TrayCreateItem("")
$exitTray=TrayCreateItem("Beenden")
TraySetState()
While True
__checkDesktopSize(@DesktopWidth, @DesktopHeight)
$msg=TrayGetMsg()
Select
Case $msg=0
ContinueLoop
Case $msg=$exitTray
If IniRead(@ScriptDir & "\data.ini", "SYSTEM", "AnzahlNotizen", "")>0 Then
For $i=0 To IniRead(@ScriptDir & "\data.ini", "SYSTEM", "AnzahlNotizen", "")-1
$text=ControlGetText("Notiz " & $i, "", "Edit1")
$pos=WinGetPos("Notiz " & $i)
$sectionGUI="PosX=" & $pos[0] & @LF & "PosY=" & $pos[1] & @LF & "Width=" & $pos[2] & @LF & "Heigth=" & $pos[3] & @LF & "Text=" & $text
IniWriteSection(@ScriptDir & "\data.ini", $i, $sectionGUI)
Next
EndIf
ExitLoop
Case $msg=$newNote
__createNewNote()
EndSelect
WEnd
Exit
Func __createNewNote()
GUICreate("Notiz " & IniRead(@ScriptDir & "\data.ini", "SYSTEM", "AnzahlNotizen", ""), 200, 200, -1, -1, $WS_SIZEBOX, $WS_EX_TOOLWINDOW)
GUICtrlCreateEdit("", 0, 0, 198, 198, BitOR($ES_MULTILINE, $ES_WANTRETURN))
GUISetState()
IniWrite(@ScriptDir & "\data.ini", "SYSTEM", "AnzahlNotizen", IniRead(@ScriptDir & "\data.ini", "SYSTEM", "AnzahlNotizen", "")+1)
EndFunc
Func __rebuildNotes()
For $i=0 To IniRead(@ScriptDir & "\data.ini", "SYSTEM", "AnzahlNotizen", "")-1
GUICreate("Notiz " & $i, IniRead(@ScriptDir & "\data.ini", $i, "Width", ""), IniRead(@ScriptDir & "\data.ini", $i, "Heigth", ""), IniRead(@ScriptDir & "\data.ini", $i, "PosX", ""), IniRead(@ScriptDir & "\data.ini", $i, "PosY", ""), $WS_SIZEBOX, $WS_EX_TOOLWINDOW)
GUICtrlCreateEdit(IniRead(@ScriptDir & "\data.ini", $i, "Text", ""), 0, 0, IniRead(@ScriptDir & "\data.ini", $i, "Width", "")-2, IniRead(@ScriptDir & "\data.ini", $i, "Heigth", "")-2, BitOR($ES_MULTILINE, $ES_WANTRETURN))
GUISetState()
Next
EndFunc
Func __checkDesktopSize($dWidth, $dHeight)
If $dWidth<>IniRead(@ScriptDir & "\data.ini", "SYSTEM", "DesktopWidth", "") Or $dHeight<>IniRead(@ScriptDir & "\data.ini", "SYSTEM", "DesktopHeight", "") Then
; Fenster an neue Desktopgröße anpassen
EndIf
EndFunc
zum testen könnt ihr einfach über das tray menü eine neue notiz anlegen und das edit mit mehrzeiligem text füllen... wenn ihr jetzt das programm schließt, werden alle notizen in der ini abgespeichert (also position der fenster usw und halt eben auch der text des edit feldes MEHRZEILIG!!!!!)
beim lesen des keys in der
[autoit]__rebuildNotes()
[/autoit]funktion wird dann eben auch nur die entsprechende zeile aus der ini gelesen und nicht alle zeilen...
wie kann ich es jetzt bewerkstellen, dass der key richtig gespeichert und richtig ausgelesen wird?!?!?
danke schonmal für eure hilfe