Aaaaaalso:
Die Klasse sieht folgendermaßen aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| type Teingangsserver = record servername:String; server:String; username:String; Passwort:String; end;
type Tausgangsserver = record servername:String; server:String; username:String; Passwort:String; end;
type Tprofile = class(TObject) username:String; ordner:String; eingangsserver: array of Teingangsserver; ausgangsserver: array of Tausgangsserver; function IndexOfEingang(name:String):integer; function IndexOfAusgang(name:String):integer; end; |
Die Rümpfe sind ja jetzt unwichtig.
in Mainform ist jetzt eine Variable profile des Typs Tprofile und in profsetupform auch.
Da ich mit verschiedenen Profile arbeite, will ich beim Laden des Profils immer alles neu erstellen, das mach ich mit
Delphi-Quelltext
1: 2:
| if profile<>nil then profile.Free; profile:=Tprofile.Create; |
Die Einstellungen werden in einer eigenen Unit geladen, deeren Prozedur ich profile als var-Parameter übergebe.
Der springende Punkt ist jetzt das Einstellungsfenster. Wenn die Einstellungen angezeigt werden sollen, mach ich
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| if profsetupform.profile=nil then profsetupform.profile:=Tprofile.Create; profsetupform.profile:=profile; if profsetupform.ShowModal=mrOK then begin profile:=profsetupform.profile; end; |
Damit stelle ich sicher, dass beim ersten Start die Variable profile existiert.
Hab gerade ein bisschen probiert und denke, dass es an der Zuweisung (wie im ersten Beitrag liegt). Kann es sein, dass ich damit die Referenz auf mainform.profile lege? Würde hinkommen, denn wenn ich profsetupform.profile erzeuge, ist es noch leer, erst nach dem ersten Ausführen der Einstellungen ist es immer dasselbe.
Naja, so wie's aussieht, muss ich das Übernehmen der Einstellungen dann doch etwas ausführlicher gestalten *g*.