Hi,
Edit:Es liegt anscheinend doch noch an anderen Sachen: dieses Beispiel funktioniert...
Das ganze Programm veröffentlichen werde ich erstmal nicht, da überlege ich noch, ob es Freeware oder Open Source werden soll.
Insofern danke für die Mühe, wahrscheinlich kann mir ohne den kompletten Source dann niemand helfen.
Ich würde mal stark tippen, dass der Fehler durch meine Prozedur zum laden der Form-Einstellungen zustande kommt..
In der Prozedur, nach der ich WS setzen wollte, klappt es nämlich auch nicht!
Tschuldigung, dass ich diese, ausschlaggebende, Sache weggelassen habe...
Ändert einiges
Ich habe es jetzt so gelöst, dass ich einfach vor Windowstate := wsMaximized ein WindowState := wsNormal setze - damit gehts.
Die betreffende Codezeile hab ich mal markiert:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95:
| unit mSpeicherObjekt;
interface
uses Types, Forms, mFormAnzahl;
type TArrangeForm = record Size: TRect; Visible: Boolean; WindowState: TWindowState; end; TArrangeForms = Array[FormIndex] of TArrangeForm;
procedure SaveLayOut(const aFileName: String); function TryLoadLayOut(const aFileName: String): Boolean; function GetFormArrangement: TArrangeForms; procedure ReadFormArrangement(const qArrangement: TArrangeForms);
implementation
uses SysUtils, mFormKommunikation;
procedure SaveLayOut(const aFileName: String); var F: File of TArrangeForm; Arrangement: TArrangeForms; i: FormIndex; begin Arrangement := GetFormArrangement; try AssignFile(F, aFileName); ReWrite(F); for i := 0 to FormAnzahl - 1 do Write(F, Arrangement[i]); finally CloseFile(F); end; end;
function TryLoadLayOut(const aFileName: String): Boolean; var F: File of TArrangeForm; Arrangement: TArrangeForms; i: FormIndex; begin result := FileExists(aFileName); if result then begin try AssignFile(F, aFileName); Reset(F); for i := 0 to FormAnzahl - 1 do Read(F, Arrangement[i]); finally CloseFile(F); end; ReadFormArrangement(Arrangement); end; end;
function GetFormArrangement: TArrangeForms; var i: FormIndex; Frm: PForm; begin for i := 0 to FormAnzahl - 1 do begin Frm := GlobalTraffic.Forms[i]; result[i].WindowState := Frm^.WindowState; Frm^.WindowState := wsNormal; result[i].Size := Rect(Frm^.Left, Frm^.Top, Frm^.Width, Frm^.Height); result[i].Visible := Frm^.Visible; Frm^.WindowState := result[i].WindowState; end; end;
procedure ReadFormArrangement(const qArrangement: TArrangeForms); var i: FormIndex; Frm: PForm; begin for i := 0 to FormAnzahl - 1 do begin Frm := GlobalTraffic.Forms[i]; Frm^.Left := qArrangement[i].Size.Left; Frm^.Top := qArrangement[i].Size.Top; Frm^.Width := qArrangement[i].Size.Right; Frm^.Height := qArrangement[i].Size.Bottom; Frm^.Visible := qArrangement[i].Visible; Frm^.WindowState := wsNormal; Frm^.WindowState := qArrangement[i].WindowState; end; end;
end. |
Edit:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| type TArrangeForm = record Size: TRect; Visible: Boolean; WindowState: TWindowState; end; TForm1 = class(TForm) Timer1: TTimer; procedure Timer1Timer(Sender: TObject); end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject); var Arr: TArrangeForm; Frm: TForm; begin Frm := self; Arr.Size := Rect(0, 0, 300, 300); Arr.Visible := true; Arr.WindowState := wsMaximized; Frm.Left := Arr.Size.Left; Frm.Top := Arr.Size.Top; Frm.Width := Arr.Size.Right; Frm.Height := Arr.Size.Bottom; Frm.Visible := Arr.Visible; Frm.WindowState := Arr.WindowState; ShowMessage('Passiert'); end; |
mfG,