자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey WebBrowser 관련 문의
2017.11.09 18:37
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 바쁜 와중에도 답변을 주시는 분들께 감사 댓글 필수
-----------------------------------------------------------------------------------------------
안녕하세요.
델파이 도쿄버전에서 하이브리드 앱을 개발해 갤럭시 S8에서 테스트하고 있습니다. (Windows 10)
TabControl에 Tab을 2개 추가하고, 첫번째 Tab에 WebBrowser를 배치했습니다.
그리고 다른 Tab에 환경설정을 위한 컴포넌트 및 첫번째 Tab으로 이동하기 위한 버튼을 추가했습니다.
첫번째 Tab에서 환경설정 버튼을 클릭하면 두번째 Tab으로 이동을 합니다.
그런데 두번째 Tab에 있는 컴포넌트들을 선택할 수 없는 상태가 됩니다.
마치 컴포넌트들이 Enabled := False인 것 같이 동작합니다.
첫번째 Tab의 WebBrowser를 비활성화(visible := False) 하면 정상동작을 하는데, 활성화하면 위에
설명한 증상이 발생합니다.
해결방법이 있을까요?
감사합니다.
댓글 6
-
스카이
2017.11.17 20:28
-
스카이
2017.11.18 12:21
저도 시도 해보지 않았습니다만,
저의 추측으로는 WebBrowser는 TabControl 속에 들어가면 다른 콤퍼넌트를 쓸수없게 하는 것 같습니다.
샘플 등을 찾아봐도 TabContol 속이 아닌 바탕화면에 WebBrowser를 배치하는 것 같습니다.
한번 시도해볼만한 것은
WebBrowser를 TabControl 밖에, 즉 동일한 레벨에 배치하여 Visual 을 True/False로 변경하는 것은 어떻까요?
-
세스나
2017.11.21 09:55
Multiview를 사용해서 해결했습니다.
답변 감사합니다.
-
험프리
2017.11.20 10:39
찾아보니 TWebBrowser에 말씀하신 이슈가 있습니다.
https://quality.embarcadero.com/browse/RSP-17705
현재 엠바카데로 품질관리 팀에 레포팅된 사안으로 문제해결 및 패치를 기다려야 할 것 같습니다.
그 전까지는, 별도의 폼(또는 프레임)에 웹브라우저를 위치해 사용하시기 바랍니다.
-
세스나
2017.11.21 09:57
빨리 문제가 해결되기를 기다려 봅니다.
답변 감사합니다.
-
스카이
2017.11.26 20:02
FireMonkey에서 WebBrowser 해결방법 사례
저는 현재 앱 사용설명서를 홈페이지 통해 보여주려고 WebBrowser를 사용하고 있습니다.
과거 지도표출은 포기했지만 앱 사용설명서는 반드시 필요한 기능이라 WebBrowser를
Tab에서 별도의 Layout 에 넣었습니다.
그래도 한번 WebBrowser가 사용되면 그 이후에는 버튼이 작동하지 않습니다.
WebBrowser1.Visible := False 로 해보아도 마찬가지 작동하지 않더군요.
단지 WebBrowser는 보여주고 닫기를 하면 되기 때문에
WebBrowser를 디자인시 만들지 않고 Help키를 누르면 동적으로 생성했습니다.
코드는 아래와 같습니다.
procedure TForm1.btn_HelpClick(Sender: TObject);
begin
if Layout1.Visible = False then begin
TabControlMain.Visible := False;
Layout1.Visible := True;
btn_Help.Text := 'X';
WebBrowserMaker;
end
else begin
TabControlMain.Visible := True;
Layout1.Visible := False;
btn_Help.Text := '?';
end;
end;
procedure TForm1.WebBrowserMaker;
var
WebBrowser1: TWebBrowser;
site : String;
begin
WebBrowser1 := TWebBrowser.Create(Self);
WebBrowser1.Parent:= Layout1;
WebBrowser1.Align := TAlignLayout.Client;
site := 'http://~~~~~/Help.html';
ed_URL.Text := site;
WebBrowser1.Navigate(site);
end;
즐거운 코딩하세요.
Firemonkey WebBrowser 관련 문의
2017.11.09 18:37
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 바쁜 와중에도 답변을 주시는 분들께 감사 댓글 필수
-----------------------------------------------------------------------------------------------
안녕하세요.
델파이 도쿄버전에서 하이브리드 앱을 개발해 갤럭시 S8에서 테스트하고 있습니다. (Windows 10)
TabControl에 Tab을 2개 추가하고, 첫번째 Tab에 WebBrowser를 배치했습니다.
그리고 다른 Tab에 환경설정을 위한 컴포넌트 및 첫번째 Tab으로 이동하기 위한 버튼을 추가했습니다.
첫번째 Tab에서 환경설정 버튼을 클릭하면 두번째 Tab으로 이동을 합니다.
그런데 두번째 Tab에 있는 컴포넌트들을 선택할 수 없는 상태가 됩니다.
마치 컴포넌트들이 Enabled := False인 것 같이 동작합니다.
첫번째 Tab의 WebBrowser를 비활성화(visible := False) 하면 정상동작을 하는데, 활성화하면 위에
설명한 증상이 발생합니다.
해결방법이 있을까요?
감사합니다.
댓글 6
-
스카이
2017.11.17 20:28
-
스카이
2017.11.18 12:21
저도 시도 해보지 않았습니다만,
저의 추측으로는 WebBrowser는 TabControl 속에 들어가면 다른 콤퍼넌트를 쓸수없게 하는 것 같습니다.
샘플 등을 찾아봐도 TabContol 속이 아닌 바탕화면에 WebBrowser를 배치하는 것 같습니다.
한번 시도해볼만한 것은
WebBrowser를 TabControl 밖에, 즉 동일한 레벨에 배치하여 Visual 을 True/False로 변경하는 것은 어떻까요?
-
세스나
2017.11.21 09:55
Multiview를 사용해서 해결했습니다.
답변 감사합니다.
-
험프리
2017.11.20 10:39
찾아보니 TWebBrowser에 말씀하신 이슈가 있습니다.
https://quality.embarcadero.com/browse/RSP-17705
현재 엠바카데로 품질관리 팀에 레포팅된 사안으로 문제해결 및 패치를 기다려야 할 것 같습니다.
그 전까지는, 별도의 폼(또는 프레임)에 웹브라우저를 위치해 사용하시기 바랍니다.
-
세스나
2017.11.21 09:57
빨리 문제가 해결되기를 기다려 봅니다.
답변 감사합니다.
-
스카이
2017.11.26 20:02
FireMonkey에서 WebBrowser 해결방법 사례
저는 현재 앱 사용설명서를 홈페이지 통해 보여주려고 WebBrowser를 사용하고 있습니다.
과거 지도표출은 포기했지만 앱 사용설명서는 반드시 필요한 기능이라 WebBrowser를
Tab에서 별도의 Layout 에 넣었습니다.
그래도 한번 WebBrowser가 사용되면 그 이후에는 버튼이 작동하지 않습니다.
WebBrowser1.Visible := False 로 해보아도 마찬가지 작동하지 않더군요.
단지 WebBrowser는 보여주고 닫기를 하면 되기 때문에
WebBrowser를 디자인시 만들지 않고 Help키를 누르면 동적으로 생성했습니다.
코드는 아래와 같습니다.
procedure TForm1.btn_HelpClick(Sender: TObject);
begin
if Layout1.Visible = False then begin
TabControlMain.Visible := False;
Layout1.Visible := True;
btn_Help.Text := 'X';
WebBrowserMaker;
end
else begin
TabControlMain.Visible := True;
Layout1.Visible := False;
btn_Help.Text := '?';
end;
end;
procedure TForm1.WebBrowserMaker;
var
WebBrowser1: TWebBrowser;
site : String;
begin
WebBrowser1 := TWebBrowser.Create(Self);
WebBrowser1.Parent:= Layout1;
WebBrowser1.Align := TAlignLayout.Client;
site := 'http://~~~~~/Help.html';
ed_URL.Text := site;
WebBrowser1.Navigate(site);
end;
즐거운 코딩하세요.
저도 TabControl 속에 WebBrowser를 배치했을 때
탭 이동한 후 버튼 등이 동작하지 않는 증상이 발생된 경험이 있습니다.
저의 경우는 지도 표출만 필요했으므로 Google Map API로 변경한 후 Tab 내에서 그러한 에러는
발생하지 않았습니다.
저도 이 증상의 원인에 대해서 알고 싶습니다.