MDI Client 에서 Indy Component 를 사용하는 개별화면(dll)을 하나 띄울때는 문제가 안되는데 두개 띄우면 다음과 같은 에러가 발생합니다.
Exception EFilerError in moudle Vcl50.bpl at 00024C8B.
A class named TIdAttachment alreay exists.
Source :
IdMessage1.Clear;
IdMessage1.CharSet := 'ks_c_5601-1987';
IdMessage1.ContentType := 'text/plain';
IdMessage1.From.Address := 'test@problem.com';
IdMessage1.From.Name := 'PROBLEM';
IdMessage1.Subject := 'Help Me';
IdMessage1.Recipients.EMailAddresses := Trim(EMailAddr);
IdMessage1.BccList.EMailAddresses := 'bcc@problem.com';
IdMessage1.Body.Clear;
IdMessage1.Body.Add('Help Me!!!');
//Attached File----------------------------------------------
IdMessage1.MessageParts.Clear;
TIdAttachment.Create(IdMessage1.MessageParts, sFileName);
IdSMTP1.Host := 'smtp.problem.com';
IdSMTP1.AuthenticationType := atLogin;
IdSMTP1.Username := 'test@problem.com';
IdSMTP1.Password := 'test';
//Connect----------------------------------------------------
IdSMTP1.Connect;
//SendMail---------------------------------------------------
IdSMTP1.Send(IdMessage1);
//Disconnect-------------------------------------------------
IdSMTP1.Disconnect;
다시 테스트해본 결과 간단히 설명드리면 A라는 단위화면에서 Indy IdMessage 컴포넌트를
사용하여 A.dll을 만들고 역시 B라는 단위화면에서 Indy IdMessage 컴포넌트를 사용하여
B.dll을 만드후 MDI에서 A화면을 호출한 후 다시 B화면을 부르면 위와같은 에러가 납니다.
구지 코딩을 안하고 단순히 컴포넌트만 가져다 붙여도 나네요....쩝
이틀째 붙잡고 있는데 전혀 감을 못잡겠군요. 글로벌 오브젝트라 문제가되는건지...
고수님들의 해피한 해결 방법 부탁드립니다!!!