1. 차일드 폼에 버튼을 동적생성
2. 버튼을 스트림 사용하여 파일로 저장
3. 스트림파일 읽어들여 새로운 차일드 폼에 버튼생성.
** 읽어들인 버튼들의 위치들을 수정하여 다시 파일로 저장하고자 하는데.
ComponentCount값을 보면 버튼 추가하기 전과 같습니다.
해서 컴포넌트 찾아서 저장해보면 아무것도 없습니다.
<!--CodeS--> ,
var
Stream: TFileStream;
Index:Integer;
Component: TComponent;
fm : Tform;
begin
fm := Tfm_remocon(mainform.ActiveMDIChild);
//
Stream := TFileStream.Create(Path, fmOpenRead);
try
while Stream.Position < Stream.Size do
begin
Component := Stream.ReadComponent(nil);
if (Component is Tspeedbutton) then
begin
fm.InsertControl(Tspeedbutton(Component));
end;
end;
finally
Stream.Free;
end;
end;
<!--CodeE-->
뭐가 문제인지 좀 알려주셔요...
우선, InsertControl 과 InsertComponent 는 다릅니다.
InsertControl 하면 ControlCount 값이 증가할 테고,
InsertComponent 하면 ComponentCount 가 증가하겠죠.
또한 버튼을 파일로 저장했다가 불러 쓰려고 한것 같은데, 아마 저장되지 않은것 같군요. 그래서 불러쓰는데 실패 한것 같네요....
버튼을 MDI 메인폼에 올려놓고 안보이게 하거나 안보이는데 숨겨 놓고, client폼에서 카피해 쓰는게 어떨까요?