안녕하세요? 저는 김기원이라는 사람입니다.
굉장히 장문입니다. 화면 캡쳐하세요... 돈아껴야죠...
먼저 component를 DLL로 만드시는 방법에 대해 제가 아는 것을
알려드릴께요.
이 때에는 폼이 있는 DLL을 만드시면 문제가 없으시리라 믿습니다.
먼저 델파이에서 New.. 를 선택하시고 DLL을 선택하시면 이것이 곧
바로 DLL을 만드는 기초가 됩니다.
그럼 이 DLL에서 uses절에 forms를 추가합니다.
예) uses
SysUtils,
Classes,
forms, <--- DLL의 Coding 해야할 부분...
만약 다른 것을 해도 안되시면 uses절에 이렇게 써보세요.
( uses
SysUtils,Classes,forms,WinProcs,Mask,ExtCtrls,ComCtrls,
ToolWin,StdCtrls,Buttons,Graphics, )
Unit1 in 'Unit1.pas' {Form1} ; <--- 이부분은 폼이 있는
DLL을 만들기 위해서 file의 new form을 선택하면
자동적으로 델파이가 만들어주는 부분이므로
신경쓰지 마세요...
이 아래 부분은 고대로 한번 써 보세요...
Procedure Form1Show; Export;
Var D: TForm1;
Begin
D := Tform1.Create(Application);
D.Show;
end;
exports
Form1show;
여기까지 고대로 써보세요.... 반드시 begin,end 부분 위에다가요...
begin
end;
그럼,여기까지가 DLL을 만드는 기초가 되는 겁니다.
이제부터는 폼에다가 컴포넌트들을 제작하는 겁니다.
예를 들어...
새로만든 폼(new form을 해서 만들 DLL에 새로 붙여 넣은 폼)에
edit1 와 button1 컴포넌트를 넣으시고, button1 컴포넌트에
이벤트를 주는 겁니다. 만약, 버튼을 클릭시 '기원니 최고!'라고
( 즉, edit1.text := '기워니 최고!';를 쓰시면 됩니다. 너무 무시했나!?)
이렇게 간단하게 폼이 있는 DLL이 작성이 되었으면, 반드시 save all을
선택하셔서 원하는 디렉토리에 unit와 project를 저장하십시오.
저는 unit1 과 project1으로 저장하겠습니다.
그런 다음 델파이 메뉴의 4번째인가 5번째인가에 가보시면 Build all을
선택하십시오. 그럼 아무 문제 없이 돌가가게 됩니다.
그러면 저장한 곳에 가보시면 project1.dll이 생성되면 되는 겁니다.
여기까지가 폼이 있는 DLL을 만드는 부분입니다.
이제부터는 이 DLL을 사용하는 방법인데요...
이제부터가 중요합니다.
이제는 새로운 프로젝트를 하나 엽니다.(new application)
그런다음 var 의 form1: TForm1; 밑에다가 procedure for....을 써 줍니다.
var
Form1: TForm1;
Procedure Form1Show;far;External 'D:\kkw\project1';
^-----제가 저장한 곳은 D드라이브밑에 있는 KKW라는 디렉토리에 있는
project1.dll을 열어주는 겁니다.(너무쉽죠...^:^)
implementation
{$R *.DFM}
그리고 폼에다가 버튼을 하나 만들고 이벤트에가다 form1show를 써주면
dll을 어디에서든 불러올수가 있습니다.
예) procedure TForm1.Button1Click(Sender: TObject);
begin
form1show;
end;
그런다음 Run을 시켜보면 폼에 버튼을 클릭하면 DLL로 만들었던 폼이
짠~안 하고 뜨게 되고 그 버튼을 누르면 '기워니 최고!'라는
Edit1.text가 뜨게 될 겁니다.
이걸로 간단하게 나마 폼이 있는 DLL에 대해 이해하셨으리라 믿습니다.
나머지는 응용하시면 되요... 즉, 폼이 있는 DLL은 그냥 등록이나 조회
하는 폼을 짜신다음에 DLL을 new 하시고 만드신 폼을 그냥 붙이시기만
하면 프로그램의 용량뿐만 아니라 프로그램의 처리속도또한 빨라집니다.
그리고 메모리의 용량까지도 적게 먹으니 1석 3조가 되는 꼴이죠...
잘 모르시겠거든 프로그램 포럼의 51.delphi/c++ builder에 가셔서
subj dll을 치시면 폼이 있는 DLL에 대해 자세히 써 놓은 (아마 116이던가)
부분이 있으니 다운 받으셔서 한번 쭉 읽어 보세요..
하지만 제가 설명한 것이 더 이해하기 쉬울겁니다.
저두 친구한테서 배운거예요... 저두 고생을 조금했답니다.
갑자기 얼마나 답답하면 이렇게 올렸을 까 하는 생각도 들었구요...
아무튼 모르시는 부분이 계시면 ydor91로 멜주세요...
그럼, 건투를 빕니다. 좋은 하루되세요...
|