안녕하세요.
정성훈.해미입니다.
TStream에는 콤포넌트를 읽고 쓰는 기능이 있습니다.
특정 콤포넌트를 읽을수도 있고 폼을 통으로 읽을 수도 있습니다.
이렇게 스트림으로 읽을 것을 텍스트로 변환하여 자장하면 됩니다
if(SaveDialog1->Execute()) {
TStream *DfmFile, *DfmStream;
DfmFile = new TFileStream(SaveDialog1->FileName, fmCreate);
DfmStream = new TMemoryStream();
DfmStream->WriteComponent(Form1);
DfmStream->Seek(0, soFromBeginning);
ObjectBinaryToText(DfmStream, DfmFile);
delete DfmStream;
delete DfmFile;
}
* 첨부터 저도 안것이 아닙니다.
외국 개발자가 이런 방법이 있다고 델파이로 잘 적어 놨길래
C++소스로 바꾸고 약간의 양념만 처서 올려 드립니다
도움이 되셨으면 합니다.
왕초보 님이 쓰신 글 :
: [질문] 소스에서 dfm 파일을 직접 수정할수 있는 함수가 궁급합니다..
:
: 디자인 화면에서 끌어다 놓는 방법 말고,
:
: 소스상에서 동적으로 컨트롤을 생성한 후 그것을 dfm 파일에 쓰여지게 하고 싶습니다.
:
: 지금은 동적으로 생성하면 디자인화면에서만 나오고 dfm 파일에서는 나오지 않습니다.
:
: 혹시 디자인 화면에서 컨트롤을 끌어다 놓을때 발생하는 함수들이 어떤것이 있는지 궁금합니다.
:
: 그중에서도 만들어진 컨트롤을 dfm 파일에 쓰여지게 하는 함수가 궁금합니다.
|