|
기본적으로 컴포넌트와 그 페이지들의 순서가 결정되는 로직은 알고 계시는 바와 같지만, 한번 등록되고 나면 레지스트리에 그 순서가 캐시됩니다. 그래서 레지스트리에서 순서를 바꿔주면 IDE에서도 지정된 순서로 나타납니다.
1. 구버전 IDE의 컴포넌트 팔레트
구버전 IDE, 즉 델파이 7 이하 / C++빌더 6 이하에서는 아래 키에 저장되어 있습니다.
HKEY_CURRENT_USER\Software\Borland\(Delphi 혹은 C++Builder)\(버전)\Palette
이 키에 있는 문자열 값들이 컴포넌트 팔레트의 각 페이지인데, 각각의 값들에 보시면 세미콜론으로 나뉘어져서 각 컴포넌트들의 이름이 순서대로 나열되어 있습니다. 이 순서를 바꿔주면 컴포넌트 팔레트에서도 그 순서대로 나타납니다. 예를 들어 Standard 탭의 컴포넌트들은 Standard라는 이름의 문자열 값에 다음과 같이 저장되어 있습니다.
.Frames;Menus.TMainMenu;Menus.TPopupMenu;StdCtrls.TLabel;StdCtrls.TEdit;StdCtrls.TMemo;StdCtrls.TButton;StdCtrls.TCheckBox;StdCtrls.TRadioButton;StdCtrls.TListBox;StdCtrls.TComboBox;StdCtrls.TScrollBar;StdCtrls.TGroupBox;ExtCtrls.TRadioGroup;ExtCtrls.TPanel;ActnList.TActionList;QMenus.TMainMenu;QMenus.TPopupMenu;QStdCtrls.TLabel;QStdCtrls.TEdit;QStdCtrls.TMemo;QStdCtrls.TButton;QStdCtrls.TCheckBox;QStdCtrls.TRadioButton;QStdCtrls.TListBox;QStdCtrls.TComboBox;QStdCtrls.TScrollBar;QStdCtrls.TGroupBox;QExtCtrls.TRadioGroup;QExtCtrls.TPanel;QActnList.TActionList;
동시에 컴포넌트 팔레트 페이지들의 순서도 지정되어 있습니다. 이 값들을 레지스트리 에디터에서 보면 아무런 순서가 없어 보이지만, 그건 레지스트리 에디터가 이름 순으로 자동으로 정렬해서 그렇지 실제로 TRegistry 객체로 열어서 GetValueNames()로 값들을 보면 팔레트에 배열되어 있는 순서대로 나옵니다.
2. 신버전 IDE의 툴 팔레트
델파이 2005 이상, C++빌더 2006 이상의 새 IDE에서 툴 팔레트의 각 페이지에서 컴포넌트들의 순서는 아래 키에 있습니다.
HKEY_CURRENT_USER\Software\CodeGear\BDS\(버전)\ToolForm\Mapping\
그리고 페이지들의 순서는 위 키의 (기본값)에 저장되어 있습니다.
장성호 님이 쓰신 글 :
: 간만에 질문하네요
:
: 컴포넌트 파렛트에 아이콘이 등록되는 순서?
: 컴포넌트 파렛트에 아이콘이 등록되는 순서가 어떻게 결정되는지 알고 싶습니다.
:
: 회사 업무로 컴포넌트를 만들고 있는데요.
:
: 자주 쓰는 컴포넌트는 앞쪽에.. 그렇지 않는 컴포넌트는 뒷쪽에 배치하고 싶은데..
: 어떻게 하는지 모르겠습니다.
:
:
: 패키지 프로젝트에 Add한 순서도 아니구
: 컴포넌트 class-name순도 아니구..
:
: 누가 좀 가르쳐 주세요
:
: 그럼..
|