<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; HTA, JScript: drag & drop окна HTA без caption]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=5018</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5018&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «HTA, JScript: drag & drop окна HTA без caption».]]></description>
		<lastBuildDate>Sat, 09 Oct 2010 07:57:03 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: HTA, JScript: drag & drop окна HTA без caption]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40208#p40208</link>
			<description><![CDATA[<div class="quotebox"><cite>JSman пишет:</cite><blockquote><p>При начале движения окошка ставим setInterval и в callback проверяем значение <a href="http://msdn.microsoft.com/en-us/library/ms533544(v=VS.85).aspx">window.event.button</a> на 0.</p></blockquote></div><p>Спасибо большое, хороший способ, но в случае с этой проблемой не совсем помогает. Тут в том беда, что этот d&amp;d вполне рабочий, но не всегда и, главное -- не всюду. На моей машине всё нормально, а на дровах, где процессор, видеокарта (ну или какое-то другое железо) чуть менее производительны. При резком ускорении движения (особенно явно проявление при движении вверх), курсор срывается за верхний предел окошка и перестает обрабатываться как событие объекта window, т.е. воспринимается как остановка курсора. Потом, при возвращении в пределы окна, все становится на место. Другими словами, железо не одинаково быстро реагирует на действия пользователя. </p><p>Значение event.button так же остается неизменным, если курсор за пределами окна. Скрипт вообще не видит мышь, любые действия, включая кнопки остаются низменны до возврата. И проверять кнопку еще раз, тоже можно только в пределах, она и так проверяется. Возможно setInterval мог бы быть как-то полезен, если следить за clientY, но тогда для каждого случая использования надо устанавливать свою задержку(?) Не на всей аппаратуре интервал со значением delay =1 -- это 1 миллисекунда.</p><p>Я нашёл один вариант решения, но с внешним обработчиком положения окна и курсора, а это связано с вызовом внешнего COM-объекта и значит наличием и регистрацией ActiveX. Мне не очень нравится, хотелось бы как-то без этих танцев...</p>]]></description>
			<author><![CDATA[null@example.com (Дроздов)]]></author>
			<pubDate>Sat, 09 Oct 2010 07:57:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40208#p40208</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA, JScript: drag & drop окна HTA без caption]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40201#p40201</link>
			<description><![CDATA[<p>При начале движения окошка ставим setInterval и в callback проверяем значение <a href="http://msdn.microsoft.com/en-us/library/ms533544(v=VS.85).aspx">window.event.button</a> на 0.</p>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Fri, 08 Oct 2010 21:17:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40201#p40201</guid>
		</item>
		<item>
			<title><![CDATA[HTA, JScript: drag & drop окна HTA без caption]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40170#p40170</link>
			<description><![CDATA[<p>Уважаемые специалисты!<br />Может быть кто-то сталкивался с подобной задачей? Помогите советом.<br />Не получается у меня нормальный drag-and-drop для окна. Никак не могу придумать, чтоб курсор не выскакивал за пределы окна и &quot;прилипал&quot; к диву наглухо до onmouseup.</p><p>в коде рабочий минимум.<br /></p><div class="codebox"><pre><code>&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
&lt;META http-equiv=&quot;MSThemeCompatible&quot; content=&quot;Yes&quot;&gt;
&lt;title&gt;drag &amp; drop&lt;/title&gt;
&lt;script language=&quot;JScript&quot;&gt;
var W ={w:500, h:300}; W.x=(screen.width - W.w)/2; W.y=(screen.height - W.h)/2;
(function WinPos(w,h,x,y){
var w=w||W.w, h=h||W.h, x=x||W.x, y=y||W.y;
resizeTo(w, h); 
moveTo(x, y)
})();
&lt;/script&gt;

&lt;hta:application ID=&quot;oHTA&quot;
 scroll =&quot;no&quot;
BORDER=&quot;none&quot;
INNERBORDER =&quot;no&quot;
/&gt;
&lt;script language=&quot;JavaScript1.2&quot;&gt;
function $(el){
var _el = (typeof(el) == &#039;string&#039;)?document.getElementById(el): el;
return _el;
}
var pic={};
var trnsp = 255;
var x,y, dobj, isdrag=false; //ie=document.all, 

function winpos(e)
{    var xx = tx + event.clientX - x, yy =ty + event.clientY - y;
  if (isdrag)
  {
    dobj.style.left =xx;
    dobj.style.top  = yy;
    if (xx!=pic.x ||yy!=pic.y)winmove(xx,yy)
    return false;
  }
}

function winmove(x,y)    {
var winX = window.screenLeft, winY = window.screenTop;
window.moveBy(x, y);
}

function getpic(obj){
    pic.x = parseInt(obj.style.left+0);
    pic.y = parseInt(obj.style.top+0);
 }
 
function GetCursorPos(e){
  var fobj       = event.srcElement; 
  var topelement = &quot;BODY&quot;
  
  if (fobj.className==&quot;movable&quot;)
  {
    isdrag = true;
    dobj = fobj;
    getpic(caption);
    tx = parseInt(dobj.style.left+0);
    ty = parseInt(dobj.style.top+0);
    x = event.clientX;  
    y = event.clientY;
    document.onmousemove=winpos;
    return false;
  }

}

document.onmousedown=GetCursorPos//selectmouse;
document.onmouseup=new Function(&quot;isdrag=false;&quot;);
&lt;/script&gt;


&lt;/head&gt;
&lt;body style=&quot;margin: 0;&quot;&gt;
&lt;div id=&quot;caption&quot; class=&quot;movable&quot;  style=&quot;background-color: #eee; position: relative;left:0px; top: 0; height:20px; width:100%; border: solid 1px #cccccc; z-index:10;&quot; &gt;&lt;span id=&quot;ctrl_close&quot; style=&quot;color:#999999; padding: 2px;    float: right; cursor:pointer; height:12px;&quot; onclick=&#039;window.close()&#039;&gt;X&lt;/span&gt;&lt;/div&gt;
&lt;/body&gt;

&lt;/html&gt;</code></pre></div><p>ps/ наверное не здесь этому топику место? понял, прошу прощения.</p>]]></description>
			<author><![CDATA[null@example.com (Дроздов)]]></author>
			<pubDate>Fri, 08 Oct 2010 15:17:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40170#p40170</guid>
		</item>
	</channel>
</rss>
