2012-06-07

[델파이] 컴포넌트 추가하기



델파이에 컴포넌트를 추가할때는 2가지 방법이 있다.
dpk(팩키지파일)와 pas(소스파일)가 있는 경우와 dpk없이 pas만 있는 경우가 설치가 있다.

dpk와 pas가 존재하는 컴포넌트 추가하기

1.file/open을 클릭하여 dpk파일을 엽니다.
2.팩키지관리자창이 뜨면 install을 클릭하여 컴포넌트를 추가합니다.
3.컴포넌트의 라이브러리를 연결해야 합니다.
4.tools/environment options을 클릭합니다.
5.library탭을 클릭한후 library path의 ..을 클릭하여 새창이 뜨면 거기서 ..을 눌러 컴포넌트
라이브러리 경로를 선택후 ok을 클릭합니다.
6.마지막으로 add을 누르고 ok을 클릭합니다.

dpk는 없는데 pas가 존재하는 컴포넌트 추가하기

1.file/new/other에서 package를 클릭합니다.
2.팩키지관리자창이 뜨면 add를 클릭한후 unit file name을 클릭하여 컴포넌트에 필요한
모든 pas파일을 선택합니다.
3.install을 클릭하여 컴포넌트를 추가합니다.
4.file/save as을 클릭하여 dpk파일을 저장합니다.
※ 나중에 또다시 팩키지 파일을 설치시에 편하게 설치하기 위해서입니다.
※ component/install component 메뉴를 이용해서 컴포넌트를 추가할수 있지만 좀 어렵다.

설치된 컴포넌트 삭제하기

1.component/install package를 클릭합니다.
2.design packages에서 삭제하고 싶은 컴포넌트를 선택합니다.
(컴포넌트를 선택후 components를 눌러 컴포넌트 확인)
3.remove를 클릭하여 삭제합니다.
(add는 bpl파일을 추가시킬때 사용합니다.-볼랜드팩키지라이브러리)
4.tools/environment options을 클릭합니다.
5.library탭을 클릭한후 library path에서 삭제한 컴포넌트의 path를 선택후 delete합니다.

설치된 컴포넌트가 어떤 컴포넌트 페이지에 등록되어 있는지 모를때

1.설치하려는 dpk파일을 열어 팩키지 관리자에서 pas파일을 열어서 아래의 부분을 참고한다.
procedure Register;
begin
  RegisterComponents('Samples', [TMacProgress]);
end;
위의 내용에서 보듯이 'Samples' 컴포넌트 페이지에 컴포넌트가 추가된다.

팔레트 페이지에 특정 페이지 추가하기

팔레트페이지에서 오른쪽 마우스를 누른후 properties을 누른다.
add버튼을 클릭한후 적당한 팔레트페이지명을 입력하고 확인버튼을 누릅니다.
델파이6까지는 비어있는 팔레트페이지도 보였으나 델파이7부터는 비어있는
팔레트페이지는 화면에서 보이지 않습니다.
※ hide는 화면에 팔레트 페이지를 보이지 않게 하지만 한번 hide하면 보이게 하기 힘드므로 사용하지 않는다.

Activex 컨트롤을 컴포넌트로 추가하기

1. component/import activex control을 클릭합니다.
2. 상단 리스트에서 등록된 activex을 선택후 install을 클릭하며 컴포넌트가 추가됩니다.
3. 상단 리스트에서 등록되지 않은 activex는 add버튼을 클릭후 추가하고 싶은 ocx 파일을 선택한후install을 클릭합니다.

2012-04-12

[델파이] 파일복사

windowsAPI 인 CopyFile함수를 다음과 같이 사용한다.





BOOL CopyFile(
    LPCTSTR lpExistingFileName, // pointer to name of an existing file 
    LPCTSTR lpNewFileName,      // pointer to filename to copy to
    BOOL bFailIfExists              // flag for operation if file exists  False면 무조건
);                                             // 복사 True면 같은이름의 NewFile이존재하면 실패     






procedure TForm1.Button5Click(Sender: TObject);
begin
  if saveDlg.Execute  then
  begin
    if CopyFile(pchar(lbFile.Caption), pchar(saveDlg.FileName), True) then   
        ShowMessage('파일복사성공')
    else
        ShowMessage('파일복사실패');
  end;
end;