Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 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 След. |
Автор |
Сообщение |
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
Ну тупанул с вопросом) сорь)
Вот сам разобрался:
BuyStop = ValueWhen(Buy, L);
ShortStop = ValueWhen(Short, H); |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
Здравствуйте.
Никто не подскажет. Мне нужно вывести диалоговое окно с радиокнопками с помощью vbs (другого варианта я не вижу). Код на vbs выглядит так:
Set MyForm = WScript.CreateObject("System.Windows.Forms.Form")
Set RadioButton1 = WScript.CreateObject("System.Windows.Forms.RadioButton")
Set RadioButton2 = WScript.CreateObject("System.Windows.Forms.RadioButton")
Set Button1 = WScript.CreateObject("System.Windows.Forms.Button")
With RadioButton1
.Parent = MyForm
.Checked = true
.Left = 12
.Top = 12
.Width = 110
.Height = 17
'.TabStop = true
.Text = "Восх"
End With
With RadioButton2
.Parent = MyForm
.Checked = true
.Left = 12
.Top = 35
.Width = 110
.Height = 17
.Text = "Нисх"
End With
with Myform
.Width = 160
.Height = 125
.Text = "Ввод"
.AutoSize = true
.FormBorderStyle = 5 'FixedToolWindow
End With
With Button1
.Parent = MyForm
.Left = 12
.Top = 160
.Width = 85
.Height = 23
'.TabStop = true
.Text = "Ok"
.DialogResult = 1
End With
MyForm.ShowDialog()
If RadioButton1.Checked Then Result = RadioButton1.Text
If RadioButton2.Checked Then Result = RadioButton2.Text
При запуске из файла с расширением .vbs он работает. Но если его вставить в AFL, то не работает. Выдаёт ошибку 424 (возможно не распознаёт объект).
В чём причина, и можно ли как-нибудь это решить? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ёёё. Создать форму из AFL? Фигасе... Я пас. У меня даже твой код vbs не работает.
Я бы реализовывал это плагином. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
У меня тоже первоначально не работал, пока я не набрал в командной строке такую команду:
%WINDIR%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe System.Windows.Forms.dll /codebase
Это надо для того, чтобы сборка System.Windows.Forms стала доступной через COM-интерфейсы. (Естественно надо обладать правами администратора)
После этого всё заработало. Только почему-то это не работает из под AFL.
Хотя код тот же самый... Обидно ( |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Запуск вышеупомянутой команды в cmd не помог. Все равно не работает... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
У тебя 64-х битная система?
Если да, то тогда такая команда (с небольшим отличием):
%WINDIR%\Microsoft.NET\Framework64\v2.0.50727\RegAsm.exe System.Windows.Forms.dll /codebase
И обязательно надо быть под администратором! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Попробуй безо всякого VBS. Просто вот так
Код: |
MF = CreateStaticObject("System.Windows.Forms.Form");
MF.Width = 160;
MF.Height = 125;
MF.Text = "Ввод";
MF.AutoSize = True;
MF.ShowDialog();
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
Да, действительно работает.
Хотя странно, мне всегда казалось, что vbs для этих целей предпочтительнее. Мне как-то надо было обращаться к Excel файлу из AFL, так только на vbs это и получилось. А здесь всё наоборот. Как-то неожиданно.. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
У меня ещё есть вопрос. А есть ли в AFL перехват ошибок? Что-то вроде "On Error Resume Next" в vbs. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну типа отладки есть. См _TRACE() |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
trashfx
Зарегистрирован: 27.06.2015
Сообщения: 90
|
Swell писал(а): |
Здравствуйте.
Никто не подскажет. Мне нужно вывести диалоговое окно с радиокнопками с помощью vbs (другого варианта я не вижу). Код на vbs выглядит так:
Set MyForm = WScript.CreateObject("System.Windows.Forms.Form")
Set RadioButton1 = WScript.CreateObject("System.Windows.Forms.RadioButton")
Set RadioButton2 = WScript.CreateObject("System.Windows.Forms.RadioButton")
Set Button1 = WScript.CreateObject("System.Windows.Forms.Button")
With RadioButton1
.Parent = MyForm
.Checked = true
.Left = 12
.Top = 12
.Width = 110
.Height = 17
'.TabStop = true
.Text = "Восх"
End With
With RadioButton2
.Parent = MyForm
.Checked = true
.Left = 12
.Top = 35
.Width = 110
.Height = 17
.Text = "Нисх"
End With
with Myform
.Width = 160
.Height = 125
.Text = "Ввод"
.AutoSize = true
.FormBorderStyle = 5 'FixedToolWindow
End With
With Button1
.Parent = MyForm
.Left = 12
.Top = 160
.Width = 85
.Height = 23
'.TabStop = true
.Text = "Ok"
.DialogResult = 1
End With
MyForm.ShowDialog()
If RadioButton1.Checked Then Result = RadioButton1.Text
If RadioButton2.Checked Then Result = RadioButton2.Text
При запуске из файла с расширением .vbs он работает. Но если его вставить в AFL, то не работает. Выдаёт ошибку 424 (возможно не распознаёт объект).
В чём причина, и можно ли как-нибудь это решить? |
EnableScript()
Код: |
EnableScript( "vbscript" );
<%
Function Radio()
Set MyForm = CreateObject("System.Windows.Forms.Form")
Set RadioButton1 = CreateObject("System.Windows.Forms.RadioButton")
Set RadioButton2 = CreateObject("System.Windows.Forms.RadioButton")
Set Button1 = CreateObject("System.Windows.Forms.Button")
With RadioButton1
.Parent = MyForm
.Checked = true
.Left = 12
.Top = 12
.Width = 110
.Height = 17
'.TabStop = true
.Text = "Восх"
End With
With RadioButton2
.Parent = MyForm
.Checked = true
.Left = 12
.Top = 35
.Width = 110
.Height = 17
.Text = "Нисх"
End With
with Myform
.Width = 160
.Height = 125
.Text = "Ввод"
.AutoSize = true
.FormBorderStyle = 5 'FixedToolWindow
End With
With Button1
.Parent = MyForm
.Left = 12
.Top = 160
.Width = 85
.Height = 23
'.TabStop = true
.Text = "Ok"
.DialogResult = 1
End With
MyForm.ShowDialog()
If RadioButton1.Checked Then Result = RadioButton1.Text
If RadioButton2.Checked Then Result = RadioButton2.Text
End function
%>
script = GetScriptObject();
if( ParamTrigger( "Show VBS dialog", "CLICK HERE" ) )
script.Radio(); |
But instead of upper better use
Код: |
ShellExecute( "Scripts\\RadioButtons.vbs", "", "", 0 ); |
As for debugging.... AFL editor has inbuilt debugger!
https://www.amibroker.com/guide/h_debugger.html
But it is not for jscript & vbscript. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
!!!!! |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AlexLan73
Зарегистрирован: 25.06.2012
Сообщения: 87
|
Подскажите пожалуйста, у меня пример не работает, выдает error 19
if( ParamTrigger( "Show VBS dialog", "CLICK HERE" ) )
script.Radio();
ругается на script.Radio();
В чем может быть проблема? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
trashfx, спасибо.
Как я понял, проблема в том, что в Ami не распознаётся слово WScript (ни в AFL, ни в vbs).
Т.о. получается, что это можно сделать и на AFL, и на vbs.
По поводу ShellExecute( "Scripts\\RadioButtons.vbs", "", "", 0 ); я тоже думал, но здесь непонятно, каким образом передавать результат работы программы обратно в AFL.
Очень жаль конечно, что в AFL не предусмотрено встроенных средств организации пользовательского интерфейса... Приходится прибегать к таким нестандартным методам... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
AlexLan73, причина может быть в том, что ты не дал команду, о которой я писал Олегу... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 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 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|