---- 아마도 Delphi 샘플 프로그램의 브라우저 예제를 아직도 기억하실 것입니다. 이 예에서는 THttp 컨트롤의 속성과 메서드를 사용하여 브라우저가 만들어졌습니다. 이 예제는 THttp 컨트롤을 사용하는 방법을 이해하는 데 정말 좋습니다. 하지만 실제 브라우저로 사용하는 사람은 거의 없습니다. 그 이유는 매우 간단합니다. 기능이 너무 제한적입니다. 프레임을 지원하지 않고, 스크립트 스크립트 언어를 지원하지 않으며, HTML 파일을 로컬 파일로 볼 수 없습니다. 대부분의 사용자는 IE 또는 Navigator를 사용하고 있으며, 우리 프로그래머는 브라우저를 사용해야 할 때 사용자가 사용할 수 있도록 WinExec 또는 CreatePROcess와 같은 방법을 통해 프로그램에서 외부 브라우저를 호출합니다. 이 방법은 실제로 매우 문제가 없지만, 항상 다른 외부 프로그램에 프로그램 제어를 포기하는 것을 조금 꺼리게 만듭니다. 특히 응용 프로그램 소프트웨어 사용자의 컴퓨터 사용 수준이 그리 높지 않을 때 더욱 그렇습니다. 높은. 자신의 프로그램에 브라우저를 내장할 수 있는 브라우저 컨트롤이 있다면 좋을 것입니다.
---- 소프트웨어의 외부 환경이 WIN95+IE 또는 WIN98(이러한 소프트웨어의 사용률은 여전히 매우 높음)인 경우 이미 시스템에 사용할 수 있는 IE 브라우저 컨트롤이 있습니다. 시간이 가는 줄 모르고 자원을 낭비하지 말고 사용하세요. IE 3.X 또는 IE 4. 의 경우 IE 컨트롤이 시스템에 ActiveX 컨트롤로 등록되어 Delphi에서 해당 컨트롤을 사용할 수 있음을 알 수 있습니다.
---- IE 브라우저 컨트롤은 사용하기 전에 표시 기능을 제공해야 하기 때문에 CreateOleObject를 사용하여 프로그램에서 인스턴스를 얻고 해당 속성과 메서드를 직접 사용할 수 없습니다. 그렇지 않으면 프로그램 실행 시 오류가 발생합니다. 이 경우 델파이에서 제공하는 "ActiveX 컨트롤 가져오기" 기능을 이용해야 하며, 조작 방법은 아래와 같습니다.
---- "구성 요소" 메뉴에서 "ActiveX 컨트롤 가져오기" 기능을 호출하고 등록된 컨트롤 목록에서 "Microsoft Internet Controls(Version1.1)"을 선택하면 아래 프롬프트 표시줄에 표시된 경로는 C:PWin98SystemSHDOCVW입니다. .DLL, 등록할 수 있는 세 가지 컨트롤이 클래스 이름(유형 목록)에 나열됩니다. TWebBrowser_V1, TWebBrowser 및 TShellFolderViewOC는 각각 IE3 브라우저 컨트롤, IE4 브라우저 컨트롤 및 "Microsoft Shell Folder View Router" 컨트롤입니다. 설치를 클릭하여 설치하세요. 설치가 완료되면 "ActiveX" 컨트롤 막대에 TWebBrowser_V1, TWebBrowser 및 TShellFolderViewOC라는 세 개의 컨트롤이 추가되고, 이 세 가지 컨트롤의 패키징 세부 정보가 포함된 SHDocVw_TLB.PAS 파일이 생성됩니다. 에는 물론 컨트롤의 속성과 메서드에 대한 설명이 포함되어 있으며 이는 컨트롤을 사용하는 데 참조로 사용할 수 있습니다.
----
TWebBrowser(IE4 브라우저 컨트롤)를 예로 들어 보겠습니다. TWebBrowser의 공통 속성과 메소드는 주로 다음과 같습니다: GoBack: 메소드, 이전 페이지로 돌아갑니다. GoForward: 다음 페이지로 이동하는 메소드입니다. GoHome: 메서드는 IE 옵션에 설정된 기본 홈 페이지를 호출합니다. GoSearch: IE 옵션에 설정된 기본 검색 페이지를 호출하는 메서드입니다. Navigate(const URL: WideString; var Flags, TargetFrameName, PostData, Headers: OleVariant): 메소드, 지정된 페이지를 호출하며 특정 매개변수는 다음과 같습니다: URL: 지정된 페이지의 URL. 플래그: 단어 유형, 기능이 아직 명확하지 않음, 0으로 설정할 수 있습니다. TargetFrameName: WideString, 페이지가 있는 프레임을 엽니다. 빈 문자열이면 현재 프레임에서 열리고, TargetFrameName에 지정된 프레임이 있으면 프레임에서 열립니다. TargetFrameName이 존재하지 않으면 새 창이 열립니다. 이는 외부 IE 브라우저를 호출하는 경우와 동일합니다. PostData: 부울, 데이터 전송 허용 여부. Headers: WideString, 전송할 URL 요청의 헤더 데이터입니다. 새로 고침: 메서드, 현재 페이지를 새로 고칩니다. 중지: 메서드, 현재 페이지 호출 또는 열기를 중지합니다. LocationName: 속성(WideString), 현재 위치의 이름입니다. LocationURL: 속성(WideString), 현재 위치의 URL입니다. Busy: 바쁜지 여부에 대한 속성(부울)입니다. Visible: 속성(부울), 브라우저 창이 표시되는지 여부. (다음 속성은 TWebBrowser의 새로운 속성이며 TWebBrowser_V1에서는 사용할 수 없으며 해당 기능을 탐색해야 합니다.) StatusBar: 상태 표시줄을 표시할지 여부를 나타내는 속성(부울)입니다. StatusText: 속성(WideString), 상태 표시줄 콘텐츠. ToolBar: 속성(SYSINT), 도구 모음의 내용입니다. MenuBar: 속성(Boolean), 메뉴바 표시 여부. FullScreen: 속성(Boolean), 전체 화면으로 표시할지 여부. 오프라인: 오프라인으로 탐색할지 여부를 나타내는 속성(부울)입니다. AddressBar: 주소 표시줄 표시 여부에 대한 속성(Boolean)입니다. TWebBrowser의 일반적인 이벤트는 주로 다음과 같습니다: OnStatusTextChange = Procedure(Sender: TObject; const Text: WideString) of object;
---- 상태 표시줄 프롬프트 정보가 변경될 때 발생합니다. Text 매개변수는 현재 상태 표시줄 프롬프트 정보를 업데이트하거나 이 정보를 기반으로 다른 트랜잭션을 처리할 수 있습니다.
----OnProgressChange = 객체의 프로시저(Sender: TObject; Progress, ProgressMax: Integer);
---- 열린 페이지의 진행률이 변경될 때 발생합니다. Progress 매개변수는 현재 진행률이고 ProgressMax는 이 두 매개변수를 기반으로 자체 상태 표시줄 프롬프트 정보를 업데이트하거나 다른 트랜잭션을 처리할 수 있습니다.
----OnCommandStateChange = 개체의 프로시저(Sender: TObject; Command: Integer; Enable: WordBool);
---- 새 명령이 실행될 때 발생합니다. Command는 명령 식별자이고 Enable은 명령 실행이 허용되는지 여부입니다. OnTitleChange = 개체의 프로시저(Sender: TObject; const Text: WideString);
---- 페이지 제목이 변경될 때 발생합니다. Text는 현재 제목입니다.
----OnPropertyChange = 객체의 프로시저(Sender: TObject; const Property_: WideString);
---- 페이지 속성이 변경되면 발생합니다. Property_는 속성 이름입니다. OnDownloadComplete: TNotifyEvent
---- 다운로드 페이지가 완료된 후 발생합니다.
----OnDownloadBegin: TNotifyEvent
---- 다운로드 페이지가 시작되기 전에 발생합니다.
---- (1) 나만의 도움말 시스템 만들기
---- 우리는 사용자를 위한 도움말 시스템을 생성하기 위해 IE 브라우저 컨트롤을 사용합니다. 도움말 파일은 여러 HTML 파일로 구성됩니다. 하나의 항목은 하나의 HTML 파일(Topic.HTM)에 해당하고 각 항목 아래의 항목은 HTML 파일. 태그(#Item). 이러한 방식으로 우리 시스템에서는 더 이상 사용자에게 도움을 제공하기 위해 IE 브라우저나 WinHelp 프로그램을 호출할 필요가 없습니다. 나는 여러분 모두가 전통적인 HLP 도움말 파일과 비교하여 HTML 도움말 파일의 장점을 알고 있다고 믿습니다.
---- 다음 예에서는 TWebBrowser(IE4 브라우저 컨트롤)의 Navigate 메소드 사용을 보여줍니다. 프로그램의 댓글을 주의 깊게 살펴보시기 바랍니다. (아래는 프로그램의 주요 부분입니다.)
{주제 및 프로젝트에 따라 도움말 파일 호출}procedure ShowHelp(HelpTopic,HelpItem: String);var TargetFrameName,PostData,Heads,Flags:OleVariant;URL:widestring;begin TargetFrameName:= ';{빈 문자열을 지정하는 경우 프레임, 현재 프레임에서 도움말 파일 열기} PostData := false;{데이터를 보내지 않음} Heads := ';{헤더 정보가 비어 있습니다.} Flags := 0;{플래그가 0으로 설정됨} URL := HelpTopic + '.HTM#'+HelpItem;{도움말 정보의 URL} with formHelp.webbrowser do{도움말 창의 IE 브라우저 컨트롤에 도움말 정보 표시} 시작 탐색( URL,Flags,TargetFrameName,PostData,Heads);{도움말 정보 표시} end;end;
---- (2) GIF 애니메이션 표시
---- 적합한 애니메이션 표시 컨트롤이 없으면 다음 방법을 시도해 볼 수도 있습니다.
절차 ShowGIF( GIFFileName : String );var TargetFrameName,PostData,Heads,Flags : OleVariant; URL : widestring;begin TargetFrameName := ';{Frame의 빈 문자열을 지정하면 현재 Frame에서 애니메이션 파일이 열립니다.} PostData := false;{데이터를 보내지 않음} Heads := ';{헤더 정보가 비어 있습니다.} Flags := 0;{Flags가 0으로 설정됨} URL := GIFFileName; formGIF.webbrowser do{지정된 창의 IE 브라우저 컨트롤에 애니메이션 표시} start Navigate(URL,Flags,TargetFrameName,PostData,Heads);{애니메이션 파일 표시} end;end;
----위 프로그램은 PWIN98+Delphi3.0에서 디버깅되었습니다.