1. Die Inputfelder von den Lagern (wo der Lagerort rein soll) werden ja garnicht mit bedacht (geladen/gespeichert).
Richtig weil deren Funktion nicht aus deinem Script hervorging, jedenfalls war mir unklar was da rein soll. Bleibt die Frage ob jeder user eigene Orte für seine Lager hat / haben soll oder ob die Orte immer identisch sind, was das input und eine speicherfunktion dafür unsinnig machen würde. Sofern es für jeden User seperat gespeichert werden soll füg eben in jede user sektion der ini noch folgende infos hinzu:
und in der save Funktion folgende Änderung:
[autoit]
if $mode = "Lager" Then
$key=$mode & $lagernummer
IniWrite($DataINI,GUICtrlRead($ComboUser),$key & "Ort",GUICtrlRead($inputLager))
EndIf
if $mode = "Schliessfach" Then $key=$mode
Achtung Variablen name geändert und alle Variablen $lagerInput1 bis 3 auskommentiert.
In der Load Funktion müssen die LagerOrt Werte dann ebenfalls ausgelesen und als inhalt des inputs gesetzt werden, sollte ja kein Problem sein.
2. Der fehler den du eingebaut hast also wenn ich jetzt nen neuen User erstelle dann wird der Zwar gespeichert aber wenn ich ihn laden will kommt dann deine msgBox "Fehler","ini Datei inkompatibel" ...
Richtig, weil in der load Funktion überprüft wird ob die ini einträge des Keys der Anzahl der verfügbaren Inputfelder entspricht. Existiert der Key noch nicht oder beinhaltet zuwenig Werte erscheint diese Fehlermeldung, weil er eben nicht gelesen werden konnte. Das kann man jetzt über viele Wege lösen, z.B. indem man die msgbox hinter dem return entfernt, dann besteht der Fehler zwar, aber du wirst nicht darauf aufmerksam gemacht. Der schönere Weg wäre die Keys grundsätzlich beim Speichern anzulegen mit der benötigten Anzahl an senkrechten Strichen. Ist aber auch egal, wichtig ist nur dass die Lesefunktion verlassen wird wenn der Key nicht existiert (return), da es ansonsten zu falschen Adressierungen des Arrays kommt und das ganze Script abstürzt.
...und es erstellen sich in der Combo mehrere gleiche User!
3. Wenn ich einen neuen User in lager eins erstelle und speichere, anschliessend das lager wechsle ihn anwählen will um da dann die einträge zu machen ist er net da!
Das hängt vermutlich mit der Zeile in der clearGUI Funktion zusammen die ich testweise auskommentiert hatte
[autoit];GUICtrlSetData($ComboUser,'')
[/autoit]Ausserdem ist die load Funktion derzeit überhaupt nicht mit dem Dropdown verknüpft, siehe while Schleife. Bedeutet ein Benutzerwechsel lädt keine Daten aus der ini. Das hat derzeit den Grund, weil dir eine Globale Variable fehlt anhand derer dein Script Kenntnis hat auf welcher Seite (Lager1-3 oder Schliessfach) du dich befindest. Ohne diese Angabe kann die Load Funktion nicht aufgerufen werden.
Lauffähig bedeutet eben nicht fehlerfrei
Vielleicht hab ich ja später oder morgen Zeit da nochmal dran zu basteln, oder du versuchst es selbst, einige Lösungsansätze hab ich dir ja nun genannt.