자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey 좌측에서 슬라이드 나오는 메뉴 클릭시 문의
2014.03.20 01:13
안녕하세요. 문의드립니다.
XE5로 앱 구현시 좌측에서 슬라이드 나오는 메뉴를 http://blog.hjf.pe.kr/126 블로그를 참고해서 작성해보았습니다.
1) Form 으로 작성시.
main.pas에서 ListBoxItem1을 클릭하면 A.pas의 AForm으로 이동하도록 작성하였습니다,
좌측 메뉴를 클릭할때 선택된 메뉴Item이 활성화가 되지않습니다.
procedure TCForm.ListBoxItem1Click(Sender: TObject);
begin
AForm := TAForm.Create(self);
AForm.Show;
end;
2) panel
procedure TForm3.ListBoxItem1Click(Sender: TObject);
begin
MenuList.Visible := false;
A_panel.Visible := true;
B_panel.Visible := false;
Panel1.BringToFront;
end;
procedure TForm3.ListBoxItem2Click(Sender: TObject);
begin
MenuList.Visible := false;
A_panel.Visible := false;
B_panel.Visible := true;
Panel1.BringToFront;
end;
1. 메뉴리스트 클릭시 활성화표시(메뉴리스트를 누르) Panel로 작성된 메뉴는 메뉴를 클릭후 다시 메뉴리스트를 열면 내가 눌렀던 리스트는 활성화표시가 되는데,
Form으로 작성한 메뉴는 클릭을하여도 메뉴리스트Item (눌러지는 느낌x)활성화가 되지않습니다.
2. 폼(or 패널) 이동시 기기의 back버튼 클릭시 문제.
Form으로 작성했을경우, A 폼에서 B폼으로 이동한후, 모바일 기기의 back을 누르면 이전 작업한 Form 기억하는 형태인거같은데, Panel로 작성한경우, 기기의 back버튼을 클릭해버리면 앱이 이전작업을 기억하지못합니다..
Form을 생성했을경우 메뉴를 눌렀을때 버튼의 활성화와 , Panel로 작성했을경우 기기의 Back버튼을 눌렀을경우, 이전작업Panel을 기억할수있는 방법...이게 두개가지 기능이 합쳐져서 되는 방법을 알고싶습니다 . 답변부탁드립니다.
Firemonkey 좌측에서 슬라이드 나오는 메뉴 클릭시 문의
2014.03.20 01:13
안녕하세요. 문의드립니다.
XE5로 앱 구현시 좌측에서 슬라이드 나오는 메뉴를 http://blog.hjf.pe.kr/126 블로그를 참고해서 작성해보았습니다.
1) Form 으로 작성시.
main.pas에서 ListBoxItem1을 클릭하면 A.pas의 AForm으로 이동하도록 작성하였습니다,
좌측 메뉴를 클릭할때 선택된 메뉴Item이 활성화가 되지않습니다.
procedure TCForm.ListBoxItem1Click(Sender: TObject);
begin
AForm := TAForm.Create(self);
AForm.Show;
end;
2) panel
procedure TForm3.ListBoxItem1Click(Sender: TObject);
begin
MenuList.Visible := false;
A_panel.Visible := true;
B_panel.Visible := false;
Panel1.BringToFront;
end;
procedure TForm3.ListBoxItem2Click(Sender: TObject);
begin
MenuList.Visible := false;
A_panel.Visible := false;
B_panel.Visible := true;
Panel1.BringToFront;
end;
Panel로 작성된 메뉴는 메뉴를 클릭후 다시 메뉴리스트를 열면 내가 눌렀던 리스트는 활성화표시가 되는데,
Form으로 작성한 메뉴는 클릭을하여도 메뉴리스트Item (눌러지는 느낌x)활성화가 되지않습니다.
2. 폼(or 패널) 이동시 기기의 back버튼 클릭시 문제.
Form으로 작성했을경우, A 폼에서 B폼으로 이동한후, 모바일 기기의 back을 누르면 이전 작업한 Form 기억하는 형태인거같은데, Panel로 작성한경우, 기기의 back버튼을 클릭해버리면 앱이 이전작업을 기억하지못합니다..
Form을 생성했을경우 메뉴를 눌렀을때 버튼의 활성화와 , Panel로 작성했을경우 기기의 Back버튼을 눌렀을경우, 이전작업Panel을 기억할수있는 방법...이게 두개가지 기능이 합쳐져서 되는 방법을 알고싶습니다 . 답변부탁드립니다.
1,
TForm > TFrame으로 변경을 시도해 보시면 좋을 것 같습니다. 전체적인 전환보다 컨텐츠 부분만 변경하시면 선택한 내용은 남아이쓸 것 같습니다.
(http://docwiki.embarcadero.com/RADStudio/XE5/en/Frames_in_FireMonkey)
2,
백버튼을 누렀을경우 이전메뉴를 표시하는 부분은 직접 구현하셔야 합니다.
백버튼을 누른것은 폼의 KeyUp 이벤트에 아래의 코드로 알수 있습니다.
if Key = vkHardwareBack then