*Пример практического применения перехвата нажатия на ссылки в WebBrowser + динамическое скрытие масштабируемых элементов управления, динамическое скрытие заголовка окна. Нажимаемые в левой (сворачивающейся) панели WebBrowser ссылки и набираемые (в верхней панели) адреса URL фильтруются по маске (нижняя панель) и открываются в центральной форме WebBrowser. Ссылки, нажимаемые с зажатой Shift ("Открыть в новом окне") фильтруются по маске и добавляются в правую панель закладок. Не подходящие по маске URL открываются в левой панели WebBrowser. При появлении в буфере обмена текста, совпадающего с маской, он (текст) будет добавлен в панель закладок. Make(delphi) ver(4.04 build 185) Add(MainForm,1987243,497,245) { Width=781 Height=709 Color=0 Name="1nBrowser" Caption="[1nBrowser] - Уже не браузер, ещё не плеер ;) (c)2011 1nd1g0 hiasm.com" DragForm=0 Position=1 Point(onMouseLeave) Point(onMouseEnter) Point(Handle) Point(doBorderStyle) Point(onShow) link(onActivate,3867343:doEvent1,[]) link(onDeactivate,12897180:doEvent1,[(534,258)(534,209)]) link(onCreate,2634454:doData,[(541,265)(541,199)(492,199)(492,132)]) link(onShow,14307726:doWork,[(565,286)(565,314)]) } Add(WebBrowser,12733755,259,245) { Left=193 Top=28 Width=387 Height=626 Align=5 Color=0 Font=[MS Sans Serif,8,0,15780518,1] URL="" Point(Navigate) Point(NewWindow) Point(doSetFocus) Point(onSplitUp) link(onNavigate,7818161:doStrCat,[]) link(URL,3677313:Value,[(265,181)(195,181)]) } Add(WebBrowser,321519,126,245) { Top=28 Width=185 Height=626 Align=1 Color=0 Font=[MS Sans Serif,8,0,15780518,1] Visible=1 Point(Navigate) Point(NewWindow) Point(doWidth) Point(doVisible) link(onNavigate,16083369:doData,[]) link(URL,2013414:Text,[(132,222)(180,222)(180,451)(230,451)]) link(Navigate,15944348:GetData,[]) link(NewWindow,9351618:GetData,[(146,233)(248,233)(248,373)(321,373)]) } Add(EventFromData,15944348,133,119) { link(onEvent,758327:doWork2,[]) } Add(StrMask,1724005,238,119) { Mask="*vkontakte.ru*" Point(doMask) link(onFalse,10529948:doData,[(291,125)(291,104)]) link(onTrue,15552550:doEvent1,[(281,132)]) } Add(DoData,13041680,406,154) { Data=Integer(1) link(onEventData,15944348:doData,[(485,160)(485,79)(112,79)(112,125)]) link(Data,8909361:Var,[]) } Add(Hub,15552550,322,147) { OutCount=3 link(onEvent1,10445741:doWork2,[(348,153)(348,160)]) link(onEvent2,12733755:doNavigate,[(348,160)(348,202)(247,202)(247,251)]) link(onEvent3,16157850:doWork,[(360,167)(360,209)]) } Add(Memory,3677313,189,119) { link(onData,1724005:doCompare,[]) } Add(HubEx,10445741,357,154) { Angle=1 link(onEvent,13041680:doData,[(361,160)]) } Add(GlobalVar,8909361,406,119) { Name="FirstRun" Data=Integer(0) link(onValue,10445741:doWork1,[(477,125)(477,141)(361,141)]) } Add(DoData,16083369,196,245) { Data=Integer(1) link(onEventData,1860182:doValue,[(240,251)(240,283)(186,283)(186,307)]) } Add(GlobalVar,1860182,196,301) { Name="FirstRun" Data=Integer(0) link(onValue,2013414:doText2,[(267,307)(267,359)(212,359)(212,412)]) } Add(DoData,10529948,308,98) { Data=Integer(0) link(onEventData,8909361:doValue,[(373,104)(373,125)]) } Add(Splitter,9405629,42,238) { Left=185 Top=31 Width=8 Height=550 Align=1 Color=0 Beveled=0 ResizeStyle=1 Point(onMouseEnter) Point(doVisible) link(onMouseEnter,9039156:doEvent1,[]) } Add(HubEx,4552944,105,280) { link(onEvent,321519:doVisible,[]) } Add(Edit,2013414,224,399) { Width=773 Align=2 Color=0 Font=[MS Sans Serif,8,0,15780518,1] Ctl3D=1 Text="http://lavren.web-times.ru/" ClearAfterEnter=1 Point(doVisible) Point(onSetFocus) Point(onKillFocus) link(onEnter,321519:doNavigate,[(256,332)(114,332)(114,251)]) link(Str,321519:CurrentURL,[(230,324)(132,324)]) link(onSetFocus,230298:doWork,[]) link(onKillFocus,8290474:doWork1,[(270,426)]) } Add(Splitter,11358726,112,399) { Top=20 Width=773 Height=8 Align=2 Color=0 Beveled=0 ResizeStyle=1 Point(onMouseEnter) Point(doVisible) link(onMouseEnter,1163843:doEvent1,[]) } Add(HubEx,2807468,224,35) { Angle=1 link(onEvent,10209734:doVisible,[(228,55)]) } Add(DoData,440622,84,343) { Data=Integer(0) link(onEventData,3089977:doEvent1,[]) } Add(MMTimer,14374465,35,343) { Interval=10000 Enable=1 AutoStop=1 link(onTimer,913440:doWork2,[]) } Add(Hub,3089977,133,343) { OutCount=5 link(onEvent1,4552944:doWork3,[(159,349)(159,315)(109,315)]) link(onEvent2,2807468:doWork3,[(173,356)(173,29)(230,29)]) link(onEvent3,4130272:doWork2,[(286,363)(286,307)]) link(onEvent4,13594725:doWork1,[(193,370)]) link(onEvent5,10554894:doWork1,[(159,377)(159,398)]) } Add(ListBox,7993959,413,259) { Left=588 Top=28 Width=185 Height=626 Align=3 Color=0 Font=[MS Sans Serif,8,0,15780518,1] Visible=1 Ctl3D=1 Strings=#80:http://vk.com/video_ext.php?oid=92304589&id=152161668&hash=d45b8c5af3407b81&hd=1|86:http://vkontakte.ru/video_ext.php?oid=24104690&id=158776802&hash=73495489b07e2624&hd=1| DataType=1 Point(doVisible) Point(onDblClick) Point(String) Point(onSetFocus) Point(onKillFocus) Point(onMouseDown) Point(Index) link(onDblClick,10785622:doData,[(457,279)(457,303)(391,303)(391,328)]) link(onSetFocus,9733424:doWork,[(461,286)(461,300)]) link(onKillFocus,2158996:doWork2,[(461,293)(461,321)]) link(onMouseDown,11608948:doCompare,[(519,300)(519,391)]) } Add(Splitter,1197299,308,259) { Left=710 Top=28 Width=8 Height=626 Align=3 Color=0 Beveled=0 ResizeStyle=1 Point(onMouseEnter) Point(doVisible) link(onMouseEnter,15551340:doEvent1,[]) } Add(HubEx,4130272,399,301) { link(onEvent,7993959:doVisible,[]) } Add(LineBreakEx,4686728,7,308) { Caption="ModeShow" Type=1 link(OnEvent,14677932:doWork2,[]) } Add(Edit,10209734,252,35) { Top=662 Width=773 Align=4 Color=0 Font=[MS Sans Serif,8,0,15780518,1] Ctl3D=1 Text="http://vk*.*/video_ext.php?oid=*&id=*&hash=*" Point(doVisible) Point(onSetFocus) Point(onKillFocus) link(onChange,612134:doEvent1,[(296,41)(296,69)(240,69)(240,97)]) link(onEnter,10209734:doText2,[(296,48)(296,28)(245,28)(245,48)]) link(onSetFocus,369206:doWork,[(303,55)(303,48)]) link(onKillFocus,10567092:doWork2,[]) } Add(HubEx,13594725,189,399) { Angle=1 link(onEvent,2013414:doVisible,[(193,419)]) } Add(Splitter,9926183,133,35) { Top=653 Width=773 Height=8 Align=4 Color=0 Beveled=0 ResizeStyle=1 Point(onMouseEnter) Point(doVisible) link(onMouseEnter,12127776:doEvent1,[]) } Add(LineBreakEx,215141,7,392) { Caption="ModeBrowse" Type=1 link(OnEvent,10554894:doWork2,[]) } Add(StrCat,7818161,455,245) { Str1="[1nBrowser] - " link(onStrCat,1987243:doCaption,[]) } Add(HubEx,758327,175,119) { link(onEvent,3677313:doValue,[]) } Add(DoData,10785622,413,322) { link(onEventData,1518044:doEvent1,[(479,335)(479,342)]) link(Data,7993959:String,[(419,317)(440,317)]) } Add(DoData,2634454,504,126) { Data=String(http://vk*.*/video_ext.php?oid=*&id=*&hash=*) link(onEventData,10209734:doText,[(542,132)(542,23)(240,23)(240,41)]) } Add(LineBreakEx,16157850,385,203) { Caption="ModeShow" } Add(LineBreakEx,369206,322,42) { Caption="ModeBrowse" } Add(LineBreakEx,230298,287,413) { Caption="ModeBrowse" } Add(LineBreakEx,9733424,476,294) { Caption="ModeBrowse" } Add(LineBreakEx,5251664,287,434) { Caption="ModeShow" } Add(LineBreakEx,650742,322,56) { Caption="ModeShow" } Add(LineBreakEx,236103,476,315) { Caption="ModeShow" } Add(Hub,1163843,154,399) { link(onEvent1,13594725:doWork2,[]) link(onEvent2,8290474:doWork2,[(218,412)(218,440)]) } Add(Hub,12127776,196,35) { link(onEvent1,2807468:doWork2,[]) link(onEvent2,10567092:doWork1,[(291,48)]) } Add(Hub,9039156,84,238) { link(onEvent1,4552944:doWork1,[(109,244)]) link(onEvent2,14677932:doWork1,[(110,251)(110,281)(95,281)]) } Add(Hub,15551340,364,259) { link(onEvent1,4130272:doWork1,[(403,265)]) link(onEvent2,2158996:doWork1,[(473,272)]) } Add(HubEx,8290474,266,434) { link(onEvent,5251664:doWork,[]) } Add(HubEx,2158996,469,315) { link(onEvent,236103:doWork,[]) } Add(HubEx,14677932,91,308) { link(onEvent,14374465:doTimer,[(102,314)(102,333)(11,333)(11,349)]) } Add(HubEx,10567092,287,56) { link(onEvent,650742:doWork,[]) } Add(EventFromData,9351618,315,329) { link(onEvent,13160343:doWork1,[(347,316)(403,316)]) } Add(Hub,6222714,364,329) { link(onEvent1,7993959:doAdd,[(396,335)(396,265)]) link(onEvent2,14288536:doWork1,[(382,342)]) } Add(DoData,10551130,385,357) { Data=Integer(1) link(onEventData,9351618:doData,[(429,363)(429,396)(307,396)(307,335)]) } Add(StrMask,11410187,490,399) { Mask="*vkontakte.ru*" Point(doMask) link(onFalse,14288536:doWork3,[(534,405)(534,356)]) link(onTrue,6222714:doEvent1,[(534,412)(534,368)(357,368)(357,335)]) } Add(Hub,612134,252,91) { link(onEvent1,1724005:doMask,[(278,97)(278,115)(226,115)(226,132)]) link(onEvent2,691166:In,[(273,104)(273,90)]) } Add(LineBreak,8126944,455,378) { Caption="msk" Color=12639424 link(Out,11410187:doMask,[(485,384)(485,412)]) Primary=[691166,-175,-294] } Add(HubEx,14288536,378,350) { Angle=1 link(onEvent,10551130:doData,[(382,363)]) } Add(WinTools,13742600,728,301) { link(Handle,1987243:Handle,[(734,295)(503,295)]) } Add(Hub,1518044,546,336) { link(onEvent1,4933526:In,[]) link(onEvent2,4573591:doWork1,[(564,349)]) } Add(HubEx,913440,70,343) { link(onEvent,440622:doData,[]) } Add(Hub,12897180,553,203) { OutCount=3 link(onEvent1,7592586:doWork1,[]) link(onEvent2,4573591:doWork2,[(572,216)(572,482)]) link(onEvent3,9178807:doWork1,[(594,231)(594,251)]) } Add(HubEx,4573591,560,476) { Angle=2 link(onEvent,913440:doWork1,[(74,482)]) } Add(LineBreak,6364704,126,91) { Caption="Show" Color=15780518 link(Out,758327:doWork3,[(179,97)]) Primary=[4933526,462,245] } Add(LineBreakEx,8670639,686,518) { Caption="LstClear" } Add(PopupMenu,4874277,637,385) { Menu=#7:Удалить|8:Вставить|1:-|12:Загрузить...|12:Сохранить...|8:Очистить|1:-|5:Выход| link(onClick,5125758:doEvent,[]) } Add(If_else,11608948,588,385) { Op2=Integer(1) link(onTrue,4874277:doPopupHere,[]) } Add(IndexToChanel,5125758,679,385) { Count=8 link(onEvent1,6088144:doData,[(723,391)(723,539)(402,539)(402,496)]) link(onEvent4,13909380:doExecute,[(723,412)(723,426)(583,426)(583,440)]) link(onEvent5,6175582:doExecute,[(723,419)(723,451)(583,451)(583,482)]) link(onEvent6,16210727:doMessage,[(723,426)(723,475)(583,475)(583,524)]) link(onEvent8,1987243:doClose,[(723,440)(723,356)(485,356)(485,272)]) } Add(ODialog,13909380,595,434) { FileName="wwwplaylist.txt" link(onExecute,11244461:doWork,[(629,440)(629,454)]) } Add(LineBreakEx,11244461,637,448) { Caption="LstOpen" } Add(SDialog,6175582,595,476) { FileName="wwwplaylist.txt" link(onExecute,13037130:doWork,[]) } Add(LineBreakEx,13037130,637,476) { Caption="LstSave" } Add(Message,16210727,595,518) { Message="Точно очистить весь список?" Caption="ПОЛНАЯ очистка списка" Type=2 Icon=2 DefButton=1 link(onMessage,10302157:doCompare,[]) } Add(If_else,10302157,644,518) { Op2=Integer(6) link(onTrue,8670639:doWork,[]) } Add(DoData,6088144,406,490) { Data=String(http://vk*.*/video_ext.php?oid=*&id=*&hash=*) link(onEventData,7993959:doDelete,[(450,496)(450,391)(401,391)(401,279)]) link(Data,7993959:Index,[(412,400)(447,400)]) } Add(LineBreakEx,10654572,294,210) { Caption="LstOpen" Type=1 link(OnEvent,7993959:doLoad,[(372,216)(372,293)]) } Add(LineBreakEx,327704,301,224) { Caption="LstSave" Type=1 link(OnEvent,7993959:doSave,[(375,230)(375,300)]) } Add(LineBreakEx,2200536,308,238) { Caption="LstClear" Type=1 link(OnEvent,7993959:doClear,[(390,244)(390,272)]) } Add(Check,14307726,602,308) { Caption="Поверх всех окон" link(onEvent,13742600:doPopup,[]) } Add(LineBreakEx,13422606,70,35) { Caption="Hide1" Type=1 link(OnEvent,9926183:doVisible,[]) } Add(LineBreakEx,15290913,35,210) { Caption="Hide2" Type=1 link(OnEvent,9405629:doVisible,[(96,216)(96,230)(30,230)(30,244)]) } Add(LineBreakEx,15228003,105,441) { Caption="Hide3" Type=1 link(OnEvent,11358726:doVisible,[(156,447)(156,437)(108,437)(108,405)]) } Add(LineBreakEx,2596642,266,287) { Caption="Hide4" Type=1 link(OnEvent,1197299:doVisible,[(346,293)(346,282)(296,282)(296,265)]) } Add(Hub,3867343,553,245) { link(onEvent1,7592586:doWork3,[(581,251)(581,230)]) link(onEvent2,9178807:doWork2,[]) } Add(HubEx,10554894,91,392) { Angle=3 link(onEvent,14374465:doStop,[(95,383)(11,383)(11,356)]) } Add(ClipboardHook,12567499,371,427) { link(onChange,13160343:doWork3,[]) } Add(HubEx,13160343,399,399) { link(onEvent,11410187:doCompare,[]) } Add(Hub,14353420,658,245) { OutCount=4 link(onEvent1,12315005:doWork,[(682,251)(682,237)]) link(onEvent2,53815:doWork,[(682,258)(682,251)]) link(onEvent3,5476719:doWork,[]) link(onEvent4,827239:doWork,[(682,272)(682,279)]) } Add(LineBreakEx,12315005,693,231) { Caption="Hide1" } Add(LineBreakEx,53815,693,245) { Caption="Hide2" } Add(LineBreakEx,5476719,693,259) { Caption="Hide3" } Add(LineBreakEx,827239,693,273) { Caption="Hide4" } Add(ChanelToIndex,9178807,616,245) { link(onIndex,14353420:doEvent1,[]) } Add(ChanelToIndex,7592586,616,203) { Count=3 link(onIndex,1987243:doBorderStyle,[(654,209)(654,239)(491,239)(491,279)]) } Add(InfoTip,1524846,546,133) { Info=#21:Переключение режимов:|51:- фонового воспроизведения (без органов управления)|44:- режима управления (все панели и заголовок)| Width=218 Height=158 } Add(InfoTip,8558553,63,7) { Info=#40:Панель с текстом маски фильтрации ссылок| Width=351 Height=67 } Add(InfoTip,14874144,21,175) { Info=#32:Панель вспомогательного браузера| Width=148 Height=123 } Add(InfoTip,10510726,105,385) { Info=#22:Панель адресной строки| VAlign=2 Width=267 Height=116 } Add(InfoTip,1011354,581,364) { Info=#32:Контекстное меню панели закладок| VAlign=2 Width=197 Height=207 }