谢谢帮忙先。
楼上说的具体情况是……?
我把程序具体贴出来吧,先是在退出的button中:
procedure TMainForm.Button1Click(Sender: TObject);
begin
writecomponentresfile('carku.res',MainForm);
close;
end;
然后再formcrate中:
procedure TMainForm.FormCreate(Sender: TObject);
var j,k:integer;
begin
//判断是否已存在设置的车库.res文件
if FileExists('carku.res') then
begin
for j:=self.ComponentCount-1 downto 0 do begin self.Components[j].Free; end;
readcomponentresfile('carku.res',MainForm);
for k:=0 to MainForm.ComponentCount-1 do begin
if MainForm.Components[k] is TPan then a[strtoint(TPan(MainForm.Components[k]).Caption)]:=TPan(MainForm.Components[k]);
end;
end;
end;
还有在panelmousedown中:
procedure TMainForm.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if t=true then
begin
i:=i+1;
a[i]:=tPan.Create(self);
a[i].Parent:=self;
a[i].Enabled:=true;
a[i].Visible:=true;
a[i].Left:=x+450;
a[i].Top :=y;
a[i].Width:=25;
a[i].Color:=clGreen;
a[i].Caption:=inttostr(i);
a[i].OnMouseDown:= PanelMouseDown;
a[i].OnMouseMove:= PanelMouseMove;
a[i].OnMouseUp:= PanelMouseUp;
label1.Caption:=inttostr(i);
edit1.Text:=inttostr(i);
end;
end;
如图中大的PANEL是原本DELPHI自带的TPANEL,小的绿色的PANEL是我自定义的TPAN。
保存那段保存,就是希望可以把这些TPAN位置什么的都保存下来,下次重新启动应用程序的时候可以出现上次设置时候的布局。