Q&A

  • MDI Child에 InsertComponent 한 후 ComponentCount 변화가 없네요..
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-->

뭐가 문제인지 좀 알려주셔요...
1  COMMENTS
  • Profile
    타락천사 2007.05.04 02:12
    질문을 보고 곰곰히 생각해 보았습니다.

    우선, InsertControl 과 InsertComponent 는 다릅니다.
    InsertControl 하면 ControlCount 값이 증가할 테고,
    InsertComponent 하면 ComponentCount 가 증가하겠죠.

    또한 버튼을 파일로 저장했다가 불러 쓰려고 한것 같은데, 아마 저장되지 않은것 같군요. 그래서 불러쓰는데 실패 한것 같네요....

    버튼을 MDI 메인폼에 올려놓고 안보이게 하거나 안보이는데 숨겨 놓고, client폼에서 카피해 쓰는게 어떨까요?