powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / HTA: Автоматический ресайз формы, под занятую контролами формы "площадь"
4 сообщений из 4, страница 1 из 1
HTA: Автоматический ресайз формы, под занятую контролами формы "площадь"
    #39039278
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
Приветствую Уважаемый Коллективный Разум!

В VBS скрипте, динамически создаю HTA-форму и, модально для скрипта, открываю её.
vbs
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
Dim sHTAShablon
Dim lInputCount
Dim i
Dim WshShell
Dim FSO
Dim sFilename


sHTAShablon = _
"<head>" & vbCrLf & _
"<title>MyHTA</title>" & vbCrLf & _
"<hta:application applicationname="""" maximizeButton=""no"" border=""dialog"" scroll=""no"" singleinstance=""yes""/>" & vbCrLf & _
"<script language=""vbscript"">" & vbCrLf & _
"    'resize" & vbCrLf & _
"    window.resizeTo 650, 600" & vbCrLf & _
"    screenWidth = Document.ParentWindow.Screen.AvailWidth" & vbCrLf & _
"    screenHeight = Document.ParentWindow.Screen.AvailHeight" & vbCrLf & _
"    posLeft = (screenWidth - 700) / 2" & vbCrLf & _
"    posTop = (screenHeight - 430) / 2" & vbCrLf & _
"    'move to centerscreen" & vbCrLf & _
"    window.moveTo posLeft, posTop" & vbCrLf & _
"</script>" & vbCrLf & _
"</head>"

sHTAShablon = sHTAShablon & vbCrLf & _
"<body scroll=""no"" bgcolor=""#f0f0f0"" >" & vbCrLf & _
"  <table width=""100%"" border=""1"" cellpadding=""0"">"

Randomize
lInputCount = Int(Rnd()*10)+1
For i = 1 To lInputCount 
  sHTAShablon = sHTAShablon & vbCrLf & _  
    "    <tr><td>" & vbCrLf & _  
    "      MyInput" & i & ": <input type=""text"" size=""30"" value="""" id=""MyInput" & i &  """ name=""MyInput" & i &  """ />" & vbCrLf & _  
    "    </td></tr>" 
Next

sHTAShablon = sHTAShablon & vbCrLf & _  
  "    <tr><td>" & vbCrLf & _  
  "      <input type=""button"" value=""OK"" name=""btnOK"" onClick="""" />" & vbCrLf & _  
  "      <input type=""button"" value=""Cancel"" name=""btnCancel"" onClick="""" />" & vbCrLf & _  
  "    </td></tr>" 

sHTAShablon = sHTAShablon & vbCrLf & _ 
"  </table>" & _
"</body>"

sHTAShablon = "<html>" & vbCrLf & sHTAShablon & vbCrLf & "</html>"

' ***********************************************

Set WshShell = WScript.CreateObject("WScript.Shell")
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")

sFilename = WshShell.CurrentDirectory & "\MyHTA.hta"

With FSO.CreateTextFile(sFilename, True)
  .Write sHTAShablon
End With

Set FSO = Nothing

WshShell.Run sFileName, 1, True

Set WshShell = Nothing


На HTA-форме, может быть любое к-во полей ввода (по факту, не только поля, но и списки, группы переключателей, чекбоксы ..., поэтому строки таблицы, куда они помещаются - будут разной высоты), которое заранее не известно.
Форма открывается и центрируется на экране скриптом в ней. Но "центрируется", по "жестко вбитым" размерам.
hta
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<html>
<head>
<title>MyHTA</title>
<hta:application applicationname="" maximizeButton="no" border="dialog" scroll="no" singleinstance="yes"/>
<script language="vbscript">
    'resize
    window.resizeTo 650, 600
    screenWidth = Document.ParentWindow.Screen.AvailWidth
    screenHeight = Document.ParentWindow.Screen.AvailHeight
    posLeft = (screenWidth - 700) / 2
    posTop = (screenHeight - 430) / 2
    'move to centerscreen
    window.moveTo posLeft, posTop
</script>
</head>
<body scroll="no" bgcolor="#f0f0f0" >
  <table width="100%" border="1" cellpadding="0">
    <tr><td>
      MyInput1: <input type="text" size="30" value="" id="MyInput1" name="MyInput1" />
    </td></tr>
    <tr><td>
      MyInput2: <input type="text" size="30" value="" id="MyInput2" name="MyInput2" />
    </td></tr>
    <tr><td>
      MyInput3: <input type="text" size="30" value="" id="MyInput3" name="MyInput3" />
    </td></tr>
    <tr><td>
      <input type="button" value="OK" name="btnOK" onClick="" />
      <input type="button" value="Cancel" name="btnCancel" onClick="" />
    </td></tr>
  </table></body>
</html>


Вопрос:
Может ли как-то сама HTA-форма "подогнать" свои размеры (хотя бы высоту) под занятую "полезную площадь" формы?

Во вложении примерчик.
Спасибо!
...
Рейтинг: 0 / 0
HTA: Автоматический ресайз формы, под занятую контролами формы "площадь"
    #39039279
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
Вот, хочу что бы этого "квадрата" :) не было
...
Рейтинг: 0 / 0
HTA: Автоматический ресайз формы, под занятую контролами формы "площадь"
    #39039334
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъ,

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
{skipped}
<hta:application applicationname="" maximizeButton="no" border="dialog" scroll="no" singleinstance="yes"/>
<script language="vbscript">
    Sub Window_OnLoad
        Dim screenWidth, screenHeight, posLeft, posTop
        screenWidth = Document.ParentWindow.Screen.AvailWidth
        screenHeight = Document.ParentWindow.Screen.AvailHeight
        'resize
        window.resizeTo 650, MainTable.offsetHeight + 50
        posLeft = (screenWidth - 650) / 2
        posTop = (screenHeight - Document.Body.offsetHeight) / 2
        'move to centerscreen
        window.moveTo posLeft, posTop
    End Sub
</script>
</head>
<body scroll="no" bgcolor="#f0f0f0" >
  <table id=MainTable width="100%" border="1" cellpadding="0">
{skipped}
...
Рейтинг: 0 / 0
HTA: Автоматический ресайз формы, под занятую контролами формы "площадь"
    #39039359
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
скукотища ,

Супер! Огромнейшее спасибо!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / HTA: Автоматический ресайз формы, под занятую контролами формы "площадь"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]