Q&A

  • 웹브라우저에서 드래그 해 온 주소를 받는 방법.

웹브라우저에서 제 프로그램으로 그림이나 링크 등을 드래그했을 때 그 그림이나 링크의 주소를 받는 방법에 대해서 알고싶습니다. 팁 란에서 탐색기에서 드래그해온 메세지를 받는 방법에 대해서 읽었습니다만, 웹브라우저에는 어떻게 적용하는지 잘 모르겠습니다. 시간이 닿으시면 가르쳐주시면 좋겠습니다.
3  COMMENTS
  • Profile
    양상훈 2002.08.03 13:54
    unit dragDrop;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, OleCtrls, SHDocVw,ActiveX;

    type
      TForm1 = class(TForm)
        WebBrowser1: TWebBrowser;
        procedure WebBrowser1BeforeNavigate2(Sender: TObject;
          const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
          Headers: OleVariant; var Cancel: WordBool);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
      const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
      Headers: OleVariant; var Cancel: WordBool);
    begin
      form1.Caption:=URL;
      Cancel:=True;
    end;

    initialization
      OleInitialize(nil);

    finalization
      OleUninitialize;

    end.

    인터넷 익스플로러에서 링크를 끌어다 WebBrowser 컨트롤 위에 놓으면
    URL을 알 수 있습니다.(파일도 가능)

  • Profile
    이민선 2002.08.03 15:45

    답변 감사드립니다. 덕분에 필요한 부분을 상당부분 해결하게 되었습니다. 이 질문은 추가적인 것으로 답변해 주지 않으셔도 괜찮습니다만, 혹시 시간이 닿으시면 답변해 주시면 감사하겠습니다.

    웹브라우저에서 드래그해 온 주소를 얻어낼 때 종종 하드에 저장되어 있는 캐시의 주소를 가져오는 경우가 있었습니다. 이 부분은 캐시를 사용하지 말도록 권장하면 어느정도는 해결할 수 있습니다만, 이랗게 캐시에 저장된 주소를 가지고 오는 경우를 막을 방법이 있을지요.



  • Profile
    양상훈 2002.08.03 23:06
    캐시파일을 읽지 않으려면 Drop된 URL과 연결된 캐쉬파일을 지워주면 됩니다.

    procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
      const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
      Headers: OleVariant; var Cancel: WordBool);
    begin

      DeleteUrlcacheEntry(pchar(string(URL)));{Uses WinINet}
      form1.Caption:=URL;
      //Cancel:=True;

    end;

    캐쉬 파일을 모두 지우는 방법은 Delphi Tips에서
    '캐쉬'로 검색하여 BlackHole님의 팁을 보시면 됩니다.


    • 이은호
    • 2002.08.05 18:40
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 이추형
      2002.08.05 21:10
      interval이 1000 이면 1초마다 인데... 0.05초 마다 작업을 돌려야 한다면 너무 빠른 작업 타이밍이 아닐...
    • 이은호
      2002.08.05 23:04
      답변감사드립니다. 50/1000초(0.05초)로 interval을 정한이유는 0.05초 마다 지속적으로 마우스의 좌표...
    • 이광수
      2002.08.06 03:59
      마우스 move이벤트가 오면 시스템 타임을 읽어서 처리하면 되겠죠. 즉 타이머가 주가 아니라 마우스 이벤...
    • 이은호
      2002.08.06 06:32
      답변 감사합니다. 마우스 move 이벤트를 저장하는 방법을 초기에 구현했었는데 이게 move이벤트를 전부...
    • 이광수
      2002.08.06 10:09
      멀티미디어 타이머라고 하는 것도 있습니다만.. 사용하신 쓰레드 타이머와 동일한 현상이 일어날 가능성이...
    • 2002.08.05 03:25
      두가지 방법이 있겠네요. 님이 원하시는 대로, 메인폼을 생성하고, Show하지 않고, 메인폼을 수정하던가, ...
    • 김길현
    • 2002.08.04 07:41
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 고정섭
    • 2002.08.04 04:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박상기
      2002.08.04 05:13
      프레임보다는 tScrollBox에다가 이미지를 올려놓고 해보세요 아주 잘 됩니다.그림이 지워지지 않고요.....
    • 이종택
    • 2002.08.03 23:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박준열
      2002.08.04 01:00
      글로 설명하기가 좀,... 암튼  ==>  '''' 하면  ' 이되고 ' &...
    • 이경혜
    • 2002.08.03 23:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2002.08.04 03:00
      TTreeView 컴포넌트를 사용하면 간단하게 구현할 수 있습니다. 다른 방법은 트리에서 체크박스를 지원...
    • 도니
    • 2002.08.03 22:41
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이영범
      2002.08.07 20:46
      1. 데이터를 가져와서 널값 비교     if Not Query1.FieldByName('Field').IsN...
    • 임형호
      2002.08.03 23:13
      제자리에 interbase가 설치가 안되어있어서... 정확한 답변인지는 모르겠구요. 만약 TTable, TQuery 컴...
    • 도니
      2002.08.06 04:15
      알려주셔서 감사하고요^^ 널값집어넣는거는 해결했는데.. 널값을 가져와서 비교할때.. Table1.FieldValu...
    • ^ㅡ^
      2002.08.03 22:18
      답변 BroderIcons 에서 biSystem Menu =  False biMinimize    &nb...
    • 김기현
    • 2002.08.03 21:14
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 오정민
    • 2002.08.03 20:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 오정민
      2002.08.03 21:22
      98과 서버의 mdac의 버전 차이 때문에 그런거였습니다. 둘다 최신버전으로 다운 받아서 설치 해주니 아무...
    • 최은석
    • 2002.08.03 20:18
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 머슴
      2002.08.05 18:12
      폼을 호출하는 부분에서 아래부분을 체크하시면 될것 같은데요..   for I := 0 to Applicatio...
    • 최은석
      2002.08.05 18:52
      안되는군여....
    • 머슴
      2002.08.05 21:20
        MDICHILD폼이름이 'T'가 포함해서 적어주세요...
    • 델사랑
    • 2002.08.03 20:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최은석
      2002.08.03 20:25
      델6도 지원되는건가요? 이름을 보니까 델5용인거 같은데... 6도 지원이 되는거라면...HSLUtils<--요...
    • 김영석
      2002.08.03 20:28
      화랑입니다. ^^ 먼저 TCPServer 서버를 이용할경우를 말씀드리겠습니다.  기본적인 연결은 같...
    • 이민선
    • 2002.08.03 09:10
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 양상훈
      2002.08.03 13:54
      unit dragDrop; interface uses   Windows, Messages, SysUtils, Variants, Classes, Gra...
    • 이민선
      2002.08.03 15:45
      답변 감사드립니다. 덕분에 필요한 부분을 상당부분 해결하게 되었습니다. 이 질문은 추가적인 것으로 답...
    • 양상훈
      2002.08.03 23:06
      캐시파일을 읽지 않으려면 Drop된 URL과 연결된 캐쉬파일을 지워주면 됩니다. procedure TForm1.WebBrow...
    • 김진아
    • 2002.08.03 02:41
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.08.03 05:03
      hsr/////////////////////////////////////////////////////////// 코딩중 어느곳에서 Checked 값을 바꾸...
    • 머슴
      2002.08.03 04:44
        MouseUp,Mousedown이벤트에서 작성을 해보십시요... procedure TForm1.CheckBox1MouseUp(...
    • 양상훈
      2002.08.03 03:12
      ..
    • ^ㅡ^
      2002.08.03 02:52
      무슨말씀을 하시는지 모르겠습니다 자세하게 설명좀 해주시면 안 될까요 제가 알기로는 마우스로 클...
    • 임형호
      2002.08.03 23:22
      ODBC로 연결하셨다면 우선은 ODBC로 연결이 되는지를 먼저 확인하세요. ODBC로 연결이 되셨다면 십중팔구...
    • ^ㅡ^
      2002.08.03 03:02
      음 일단 MS SQL Server 7.0 에 있는 써비스메니져가 실행 되는지 확인 하셔야 할꺼 같구요 그게 실행 ...
    • 질문맨~
    • 2002.08.03 00:45
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최여옥
    • 2002.08.02 21:59
    • 0 COMMENTS
    • /
    • 0 LIKES