26

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Можно с AnimateWindow слайдшоу сделать.
Но там эффектов немного.
https://msdn.microsoft.com/ru-ru/librar … s.85).aspx
Кстати с 13 и 17 номерами элементов опять ошибка:

Line: 28
Char:4
InvalidStateError
Code 0

27

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Malcev
Какой, однако, у вас дебагер дотошный. У меня - молчит, где бы не пробовал. Какая версия IE?
В общем, в очередной раз, код поправил. Спасибо за багрепорт!

28

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

IE 11.0.9600.18537.

Сейчас свойства всех элементов (их 20) выводятся последовательно

У меня 18-ый последний.

29 (изменено: stealzy, 2017-04-05 22:17:18)

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Почему при нажатии 3 и более раза подряд на кнопку Call JavaScript Function поле ввода уходит за пределы окна?
Так и было задумано?

30

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Malcev пишет:

У меня 18-ый последний.

У меня 19.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

31

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Насчет 20 я обсчитался. От 0 (HTML) до 18 (INPUT) - т.е. всего 19.
Malcev, и все таки, какой у Вас IE?
stealzy, просто у Вас старый код (1й пост давно обновлен).
Рад, что унылый шаблон оказался забавной игрушкой.

32 (изменено: Malcev, 2017-04-06 00:13:01)

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

А я написал в 28 сообщении:

Malcev пишет:

IE 11.0.9600.18537.

У меня 0 - HTML, 17 - INPUT, 18,19,20... - HTML.

33

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Все, что больше общего количества 18,19,20... приводится к 0 индексу - HTML - т.е. тут - как и задумано.
А вот почему общее количество получилось равным 18, а не 19 - вот над этим надо подумать. Тем более что у меня дома такой же IE.11. Теги всех элементов последовательно - HTML,HEAD,TITLE,META,META,STYLE,SCRIPT,BODY,FIELDSET,LEGEND,TABLE,TBODY,TR,TD,INPUT,TD,INPUT,TD,INPUT.

34

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

У меня TITLE нету.
Да и в коде я такого тега не вижу.

35

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Просто браузер некоторые теги (TITLE,TBODY например) эмулирует при их отсутствии в коде. Я этот код прогонял в IE, Chrome, FireFox - везде набирается 19 штук. Только у вас - 18. Имхо, какой то странный баг (несущественный конечно).

36 (изменено: Malcev, 2017-04-06 15:45:31)

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Понял в чем штука:
Так работает:

FixIE(0)
;Ваш код

FixIE(Fix)  {
    Static Key := "Software\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"
    If A_IsCompiled
        ExeName := A_ScriptName
    Else
        SplitPath, A_AhkPath, ExeName
    If Fix
        RegWrite, REG_DWORD, HKCU, %Key%, %ExeName%, 0
    Else
        RegDelete, HKCU, %Key%, %ExeName%
}

А вот так уже нет и результаты джаваскрипта совсем другие:

FixIE(1)
;Ваш код

FixIE(Fix)  {
    Static Key := "Software\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"
    If A_IsCompiled
        ExeName := A_ScriptName
    Else
        SplitPath, A_AhkPath, ExeName
    If Fix
        RegWrite, REG_DWORD, HKCU, %Key%, %ExeName%, 0
    Else
        RegDelete, HKCU, %Key%, %ExeName%
}

А вот в таком случае надо вставлять FixIE(1) чтобы кнопки закруглялись.

FixIE(1)

html = 
(     
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Круглые изображения</title>
  <style>
   .round {
    border-radius: 100px; /* Радиус скругления */
    border: 3px solid green; /* Параметры рамки */
    box-shadow: 0 0 7px #666; /* Параметры тени */
   }
  </style>
 </head>
 <body>
   <p><img src="file://localhost/D:\AutoIt\images\thumb1.jpg" alt="" class="round"></p>
 </body>
</html>
) 
 
Gui, -DPIScale +ReSize 
Gui, margin, 0, 0 
Gui, Add, ActiveX, hwndhActiveX w222 h222 vIE, Shell.Explorer  
IE.Navigate("about:blank")
IE.document.write( html ) 
Gui, show, na
return

FixIE(Fix)  {
	Static Key := "Software\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"
	If A_IsCompiled
		ExeName := A_ScriptName
	Else
		SplitPath, A_AhkPath, ExeName
	If Fix
		RegWrite, REG_DWORD, HKCU, %Key%, %ExeName%, 0
	Else
		RegDelete, HKCU, %Key%, %ExeName%
}

Интересно как сделать, чтоб и кнопки отображались закругленными и джаваскрипт выполнялся правильно?
В общем надо копать эти темы:
https://autohotkey.com/board/topic/9366 … er-engine/
https://autohotkey.com/boards/viewtopic … mp;t=12317
https://autohotkey.com/boards/viewtopic … 379#p33379

37

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

JS и так выполняется правильно. Ну не видит данный тестовый скрипт в некоторых системах эмулируемые теги - и что с того?
Полагаю что в данном шаблоне даже упоминать про эту настройку не стоит.
А способов внедрения в html код различных украшательств интерфейса напридумывали достаточно много. Если есть желание - можно обсудить эту тему в другой ветке. Хотя лично я на этот счет никогда не заморачивался.

38

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

У меня показываются разные результаты:
С FixIE(0):

HTML
---------------
all = [object]
attributes = [object]
behaviorUrns = [object]
canHaveChildren = true
childNodes = [object]
children = [object]
className = test
contentEditable = inherit
currentStyle = [object]
document = [object]
filters = [object]
firstChild = [object]
innerHTML = <HEAD>
<META content="te
innerText = Internet Explorer   
 
isMultiLine = true
lastChild = [object]
nodeName = HTML
nodeType = 1
offsetHeight = 84
offsetWidth = 500
outerHTML = <HTML class=test><HEAD>

outerText = Internet Explorer   
 
ownerDocument = [object]
parentNode = [object]
readyState = complete
runtimeStyle = [object]
scopeName = HTML
scrollHeight = 84
scrollWidth = 500
style = [object]
tagName = HTML

С FixIE(1):

HTML
---------------
ATTRIBUTE_NODE = 2
CDATA_SECTION_NODE = 4
COMMENT_NODE = 8
DOCUMENT_FRAGMENT_NODE = 11
DOCUMENT_NODE = 9
DOCUMENT_POSITION_CONTAINED_BY = 16
DOCUMENT_POSITION_CONTAINS = 8
DOCUMENT_POSITION_DISCONNECTED = 1
DOCUMENT_POSITION_FOLLOWING = 4
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32
DOCUMENT_POSITION_PRECEDING = 2
DOCUMENT_TYPE_NODE = 10
ELEMENT_NODE = 1
ENTITY_NODE = 6
ENTITY_REFERENCE_NODE = 5
NOTATION_NODE = 12
PROCESSING_INSTRUCTION_NODE = 7
TEXT_NODE = 3
addEventListener = 
function addEventListene
appendChild = 
function appendChild() {
applyElement = 
function applyElement() 
attributes = [object NamedNodeMap]
blur = 
function blur() {
    [n
canHaveChildren = true
childElementCount = 2
childNodes = [object NodeList]
children = [object HTMLCollection]
classList = test
className = test
clearAttributes = 
function clearAttributes
click = 
function click() {
    [
clientHeight = 84
clientWidth = 500
cloneNode = 
function cloneNode() {
 
compareDocumentPosition = 
function compareDocument
componentFromPoint = 
function componentFromPo
contains = 
function contains() {
  
contentEditable = inherit
createControlRange = 
function createControlRa
currentStyle = [object MSCurrentStyleCSS
dataset = [object DOMStringMap]
dispatchEvent = 
function dispatchEvent()
dragDrop = 
function dragDrop() {
  
firstChild = [object HTMLHeadElement]
firstElementChild = [object HTMLHeadElement]
focus = 
function focus() {
    [
getAdjacentText = 
function getAdjacentText
getAttribute = 
function getAttribute() 
getAttributeNS = 
function getAttributeNS(
getAttributeNode = 
function getAttributeNod
getAttributeNodeNS = 
function getAttributeNod
getBoundingClientRect = 
function getBoundingClie
getClientRects = 
function getClientRects(
getElementsByClassName = 
function getElementsByCl
getElementsByTagName = 
function getElementsByTa
getElementsByTagNameNS = 
function getElementsByTa
hasAttribute = 
function hasAttribute() 
hasAttributeNS = 
function hasAttributeNS(
hasAttributes = 
function hasAttributes()
hasChildNodes = 
function hasChildNodes()
innerHTML = <head>
<meta http-equiv="
innerText =   /* Задание общих стилей
insertAdjacentElement = 
function insertAdjacentE
insertAdjacentHTML = 
function insertAdjacentH
insertAdjacentText = 
function insertAdjacentT
insertBefore = 
function insertBefore() 
isDefaultNamespace = 
function isDefaultNamesp
isEqualNode = 
function isEqualNode() {
isMultiLine = true
isSameNode = 
function isSameNode() {

isSupported = 
function isSupported() {
lastChild = [object HTMLBodyElement]
lastElementChild = [object HTMLBodyElement]
localName = html
lookupNamespaceURI = 
function lookupNamespace
lookupPrefix = 
function lookupPrefix() 
mergeAttributes = 
function mergeAttributes
msContentZoomFactor = 1
msGetInputContext = 
function msGetInputConte
msGetRegionContent = 
function msGetRegionCont
msGetUntransformedBounds = 
function msGetUntransfor
msMatchesSelector = 
function msMatchesSelect
msRegionOverflow = undefined
msReleasePointerCapture = 
function msReleasePointe
msRequestFullscreen = 
function msRequestFullsc
msSetPointerCapture = 
function msSetPointerCap
namespaceURI = http://www.w3.org/1999/xh
nodeName = HTML
nodeType = 1
normalize = 
function normalize() {
 
offsetHeight = 88
offsetWidth = 500
outerHTML = <html class="test"><head>
outerText =   /* Задание общих стилей
ownerDocument = [object HTMLDocument]
parentNode = [object HTMLDocument]
querySelector = 
function querySelector()
querySelectorAll = 
function querySelectorAl
releaseCapture = 
function releaseCapture(
releasePointerCapture = 
function releasePointerC
removeAttribute = 
function removeAttribute
removeAttributeNS = 
function removeAttribute
removeAttributeNode = 
function removeAttribute
removeChild = 
function removeChild() {
removeEventListener = 
function removeEventList
removeNode = 
function removeNode() {

replaceAdjacentText = 
function replaceAdjacent
replaceChild = 
function replaceChild() 
replaceNode = 
function replaceNode() {
runtimeStyle = [object MSStyleCSSPropert
scrollHeight = 89
scrollIntoView = 
function scrollIntoView(
scrollWidth = 500
setActive = 
function setActive() {
 
setAttribute = 
function setAttribute() 
setAttributeNS = 
function setAttributeNS(
setAttributeNode = 
function setAttributeNod
setAttributeNodeNS = 
function setAttributeNod
setCapture = 
function setCapture() {

setPointerCapture = 
function setPointerCaptu
style = [object MSStyleCSSPropert
swapNode = 
function swapNode() {
  
tagName = HTML
textContent = 



   /* Задание общих с
uniqueID = ms__id1
uniqueNumber = 1

И зачем обсуждать украшательства в другой ветке, когда вы сами писали:

Умолчу о неоспоримых и многочисленных достоинствах веб-интерфейса (ну и о некоторых его недостатках - тоже). Полагаю, что тот, кому знаком html и javascript и кого связывают возможности контролов AHK Gui свой выбор уже сделал.

Или вы не украшательства имели в виду?

39 (изменено: mozers, 2017-04-07 11:09:32)

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Не... Я просто о том, что если кому то (как мне, например) ближе html, то он может реализовать вполне приличный GUI на нем.
Никакой ущербности по сравнению с ahk Gui в таком интерфейсе не будет. Только надо все правильно сделать по предложенному шаблону.

По поводу вывода свойств элемента при FixIE(1). Что означают значения выводимые заглавными буквами и как их можно применить для практической цели - я не в курсе - надо разбираться.

40

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

mozers пишет:

Уважаемые модераторы, может стоит создать тему "AHK: Подключение к DOM внешнего HTML документа" и перенести последние 7 постов туда? (Тематика уже ушла от заголовка, а диалог только начинается. Еще про подключение к HTA ничего не говорили...)

Последние 7 сообщений перенесены в новую тему AHK: Подключение к DOM внешнего HTML документа.

41

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Недочеты исправлены. Всем огромное СПАСИБО за замечания и предложения.
Поместил шаблон в Коллекцию.

42

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Скажите пожалуйста, как правильно в этом случае описать подключение Jquery и подобных фреймворков, чтобы пользоваться ими в этом контроле?

Сделал было стандартную запись под мета-тегами в "head", файла  "interface.html", но при запуске получаю сообщение об ошибке "Script error" с URL, указанным в "src". При локальном размещении библиотеки, текст ошибки сообщает, что: - "Объект не поддерживает свойство или метод 'addEventListener'".

43

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Так работает:

html =
(
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script> 
$(document).ready(function(){
    $("button").click(function(){
        var div = $("div");
        div.animate({height: '300px', opacity: '0.4'}, "slow");
        div.animate({width: '300px', opacity: '0.8'}, "slow");
        div.animate({height: '100px', opacity: '0.4'}, "slow");
        div.animate({width: '100px', opacity: '0.8'}, "slow");
    });
});
</script> 
</head>
<body>

<button>Start Animation</button>

<p>By default, all HTML elements have a static position, and cannot be moved. To manipulate the position, remember to first set the CSS position property of the element to relative, fixed, or absolute!</p>

<div style="background:#98bf21;height:100px;width:100px;position:absolute;"></div>

</body>
</html>
)
Gui, Add, ActiveX, w500 h500 vwb +VScroll +HScroll,  about:<!DOCTYPE html><meta http-equiv="X-UA-Compatible" content="IE=edge">
wb.document.open()
wb.document.write(html)
wb.document.close
wb.refresh()
gui, show
return

44 (изменено: mozers, 2017-11-26 22:29:51)

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

KusochekDobra, addEventListener IE не поддерживает.
Динамически добавить обработку события в веб контрол можно так (без всяких JQuery):

document.attachEvent('onmousemove', mySuperFunction);

45

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

mozers пишет:

addEventListener IE не поддерживает

Вы уверены?
https://msdn.microsoft.com/ru-ru/ff975825

46

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

mozers, я просто описал ответ среды на мои невежественные попытки наладить контакт с помощью пинков и матерных выражений. Я ещё во многом - "глупое донышко", нуждающееся в грамотном руководстве. А вообще, Ваше решение использовать этот контрол как универсальный инструмент в мир интерактивных объектов, которыми в гораздо большей степени пестрят браузеры, чем это представляет AHK, вспомнилось недавно. Остро встал вопрос о визуальном представлении различных данных в больших объёмах, для анализа, для чего графики подходят идеально. Вначале помучил XGraph. Не нашёл способа отобразить в одном контроле более одной кривой. Возня с наложением прозрачных окон друг на друга с последующим их синхронным перемещением, в случае перемещения любого из слоёв, не выдержала критики, а после нахождения обсуждения, где ответ Malcev остановил мои поиски решения, в котором дочерние окна не могут получить прозрачность через "WinSet", я наткнулся на "RMChart". Древний проект, который уже и своей страницы не имеет. Поднял на этом деле ещё немного логической грамотности, но это тоже всё, такой крюк... Нашёл опять на Сером форуме обсуждения, где можно бы всё это намутить средствами "GDI+" и, тут я вспомнил про Вашу поделку, пример которой я благополучно поимел в свой локальный сборник интересностей ещё на стадии обсуждения.

Небольшой опыт в HTML у меня есть, благодаря прошлым наводкам на годную инфу от Malcev и написании своей первой странички на бесплатном хостинге. Так что меня буквально зацепила возможность реализовать это таким же простым и понятным синтаксисом как AHK, на js. Выбрал в качестве жертвы Flot, но для него требуется Jquery. По мере времени, осваиваю. Прекрасно работает. Так что мой Вам низкий поклон, за эту превосходную наводку!

47

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Malcev, если

текст ошибки сообщает, что: - "Объект не поддерживает свойство или метод 'addEventListener'"

то это - правда. В полноценный браузер поддержку вставили, а в ahk веб-контроле и в mshta (в котором я, практически, живу) - такой поддержки как не было так и нет.

KusochekDobra, еще могу порекомендовать jqplot - тоже неплохой фрейворк для построения графиков.

48

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

mozers пишет:

то это - правда.

Неправда.
Насчет mshta не знаю, но в ахк можно либо через реестр нужную эмуляцию вписать, либо через:

Gui, Add, ActiveX, w500 h500 vwb +VScroll +HScroll,  about:<!DOCTYPE html><meta http-equiv="X-UA-Compatible" content="IE=edge">

В теме про ahkspy мы это недавно обсуждали.
Можете почитать.

49

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Поддерживаю последнее утверждение, хотя, пока и не особо полноценно понимаю связь одного с другим. Встречал упоминания здесь, перед тем, как задать вопрос, но в силу лютой безграмотности не придал этому должного внимания.

50

Re: AHK: GUI HTML интерфейс (шаблон для любого проекта)

Malcev, не поленился, попробовал. И действительно

<meta http-equiv="X-UA-Compatible" content="IE=edge">

Просто какой то "крест животворящий". В HTA, кстати, тоже.