리본메뉴의 특징
1. MS 계열의 라이센스형식을 따릅니다.
2. 보기 좋고 직관적입니다.
3. 메뉴를 다양한 방법으로 응용 가능합니다.( 입력/수정/표시/광고 )
시작…
RibbonBar는 TdxBarManager를 사용해야만 합니다. 따라서 폼에 TdxBarManager를 올려 놓습니다.
이외에 TcxImageList, TcxStyleRepository를 사용합니다.
TdxBarManager -> ImageOption -> LargeImages를 지정합니다.
소스추가
1 2 3 4 5 6 7 8 9 |
Uses문에 dxRibbonForm; 를 추가 type TForm1 = class(TdxRibbonForm) //--------------------------------------------------------------- procedure TForm1.FormCreate(Sender: TObject); begin // 반드시 해야한다. DisableAero := true; //리본바의 둥근 원을 눌러 메뉴를 만들때 |
4. TdxBarApplicationMenu를 내려 놓습니다. TdxBarApplicationMenu는 리본바의 메뉴를 만들기 위해 필요한내용입니다. 리본바의 둥근 원을 눌러 메뉴를 만들지 않을 경우 내려 놓지 않아도됩니다.
5. ApplicationButton -> Menu에 TdxBarApplicationMenu를 지정하고 이를 지정 합니다
메인메뉴 구성시에는
TdxRibbonBackstageView 를 연결한다.
메뉴 구성을 일일이 해야한다. 어쩔수 없다.
TdxApplicationMenu를 만드는 것보다 쉽다. 디자인 구성이 쉽다.
1 2 3 4 5 6 7 8 9 10 11 12 |
Contexts를 구성한다. 여러개도 구성하고 Tab을 만들고 Context를 연결한다. procedure TForm1.Button1Click(Sender: TObject); begin dxRibbon1.Contexts[0].Activate(); end; procedure TForm1.Button2Click(Sender: TObject); begin dxRibbon1.Contexts[0].visible := False; end; |
리본의 일반 에디트는 CurEditValue <<–를 사용해야 한다.
리본에서 SkinChooser를 이용한방법.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
procedure TMain_Form.SkinChooserSkinChanged(Sender: TObject; const ASkinName: string); Var INIF : TIniFile; function FindSkinItemInGroup(AGroup: TdxRibbonGalleryGroup; const AName: string): TdxSkinChooserGalleryGroupItem; var I: Integer; begin Result := nil; for I := 0 to AGroup.Items.Count - 1 do if SameText(AName, (AGroup.Items[I] as TdxSkinChooserGalleryGroupItem).SkinName) then begin Result := TdxSkinChooserGalleryGroupItem(AGroup.Items[I]); Break; end; end; function FindSkinItem(const AName: string): TdxSkinChooserGalleryGroupItem; var I: Integer; begin Result := nil; for I := 0 to SkinChooser.GalleryGroups.Count - 1 do begin Result := FindSkinItemInGroup(SkinChooser.GalleryGroups.Items[I], AName); if Result <> nil then Break; end; end; begin Ribbon_Menu.ColorSchemeName := ASkinName; SkinChooser.SelectedGroupItem := FindSkinItem(ASkinName); SkinChooser.SelectedSkinName := ASkinName; DM.dxSkinController.NativeStyle := false; DM.dxSkinController.SkinName := ASkinName; // Panel1.Color := RB_MainMenu.ColorScheme.GetPartColor(rfspRibbonForm); //StatusBar_Main.Invalidate; with TIniFile.Create(PS_INIFile) do begin WriteString('General', 'SKIN', ASkinName ); // exist aCleanServer Free; end; end; |
//////////////////////////////////////////////////////////////////////////////////////////////////////
6. 퀀텀의 리본바는 위 그림처럼 둥근 우측에 QuickAcessToolBar(이하 QAT)를 배열해야만 RibbonBar Menu가 나타 납니다.
QAT를 구성하려면, 일단 ToolBar가 필요합니다.
그럼. 툴바를 만들어 봅시다. TdxBarManager를 더블 클릭하고, Toolbars탭에서 New 버튼을 눌러 새로운 툴바를 생성합니다. 전 “QAT Toolbar”라고 이름 붙였습니다.
자 이제 리본바 밑에 조그만 toolbar가 나타납니다.
그럼. 이 툴바를 QAT에 붙이면 됩니다.
7. TdxRibbonBar -> TdxRibbonQuickAccessToolbar에 새로 만든 ToolBar를 지정합니다.
8. ToolBar를 연결하고, TdxRibbon->PopupMenuItems메뉴에서 rpmiQATMoreCommands를False로 설정합니다. 그래야만 QAT의 SubMenu(▼부분)에 지저분한 내용이 포함되지 않습니다. true로 해놓고 한번 실행해 보시기 바랍니다.
<▼부분을 눌렀을 때 나오는 팝업은 QAT에 정의한 버튼을 포함하여 DX에서 자동으로 만들어 줍니다.>
9. 요기까지 모든 준비를 마쳤습니다. 이제 리본바에 Tab을 만듭니다.
마우스 오른쪽을 누르던
프러퍼티에서에서 Tabs를 선택하던
새로운 탭을 추가합니다.
탭을 추가 했으면, 이제 탭에서 마우스 오른쪽을 눌러 Add Group With Toolbar를 선택하여 툴바를 추가 합니다. 이미 만들어 놓은 것은 BarManager에서 끌어다 배열 하면 됩니다.
, BarManager에서 Tool바를 만들고 배열 하면 됩니다.
10. 툴바를 만들고 배열한뒤에 툴바에서 마우스 오른쪽을 눌러 툴바에 넣은 버튼이나 기타 내용을 추가합니다.
만들어진 내용은 모두 BarManager에 들어가 있습니다.
11. BarManager에 추가된 버튼이나 내용이 들어가 있습니다.
그림 처럼 Catergory를 설정하고 적당히 분배해서 관리하기 편하도록 합니다.
여기서 중요한것은 드래그 드롭이 가능합니다. 오른쪽에 배열된 Button등을 마우스 클릭하여 드래그해서 원하는 QAT나 툴바에 넣을수도 있습니다.
12. 자, 이젠 과 QAT에 내용을 모두 넣어 보았습니다.
그럼.. 동그란넘 ApplicationMenu에 값을 넣어 봅시다.
일단 RibbonBar를 선택하고, ApplicationMenu프로퍼티에 Menu부분에 TdxBarApplicationMenu를 설정합니다.
Glyph에 그림도 넣어 봅니다.
모두 설정이 끝나면, 이제 TdxBarApplicationMenu를 더블 클릭합니다.
화면 좌측 상단에 뭔가 하나 뜨고 화면에는 BarManager가 뜹니다.
2가지 방법이 있습니다. 첫째는 쉬운 방법으로 좌측 상단에 떠 있는 폼의 내용을 마우스
오른쪽 클릭하여 메뉴를 추가 하는 방법입니다.
둘째는 BarManager에서 내용을 만들어 놓았거나, 탭용으로 만들어진 놈들을 가져다 놓는 방식입니다. 물론 새로 만들어도 되고요.
전 여기서 Tab의 내용을 SubMenu로 구성하고 Submenu안에 각 탭의 몇가지 내용만 구성했습니다.
구성하는 방법은 간단합니다. 그냥 BarManager에서 오른쪽 버튼을 눌러 Add를 선택하고
배열하시고자 하는 내용을 선택하고( 전 서브 메뉴 ) 이름을 적어 주고 OK를 누룹니다.
다음에는 TdxBarApplicationMenu를 더블클릭하고 나타난 좌측 상단의 폼을 끌어다 BarManager옆에 놓고 BarManager에서 버튼이나 서브 메뉴를 클릭하여 끌어다 놓으면 되니다.(아래 그림 참조)
여기서 간단히 ApplicationMenu에 넣을 메뉴를 구성한뒤에 Application Menu에 Description을 같이 보여 주고 싶은 경우 프로퍼티에서 아래 그림처럼 설정합니다.
SubMenu는 물론이고 각 버튼에도 같이 설정합니다.
아래 그림처럼 나타 납니다.
간단히 RibbonBar를 만드는 법을 설명 했습니다.
실행해보면서 프로퍼티를 조금씩 바꿔보시면, 그리고 데모를 참조하시면서 천천히 해보시기를 권해 드립니다.
참고 되시기 바랍니다.
최신 댓글