humanemulator.net — справка. Продукт, демо и покупка — на хуманэмулятор.рф | Демо | Купить | API | лог изменений

show_free_dlg

show_free_dlg($xml,$is_ret_xml=true,$separator="\r\n"); - данная функция используется для создания диалога по его xml описанию

Функция на вход принимает параметры:

  • $xml – XML описание создаваемого диалога, это строка , что должна иметь один корневой элемент, содержащий элементы управления которые будут показаны в диалоге, тип элемента управления определяется его именем.(см ниже список) Все элементы, включая корневой, должны иметь следующие атрибуты:

    • x – x позиция верхнего угла элемента
    • y – y позиция верхнего угла элемента
    • width – длина элемента
    • height – высота элемента
    • value – значение, в CHECKBOX – отображает отметку галочки, во всех остальных текст элемента
    • button – текст кнопки для элементов спаренных с кнопкой (например выбор файла или папки)
    • command - ключ по котрому будут помнится предыдущий выбор (например выбор файла или папки)
    • ext - для диалога выбора файла - расширения выбираемых файлов, а для диалога выбора папки - дополнительный текст появляющийся при выборе в самом диалоге
    Список имён элементов:

    • EDIT – поле ввода текста
    • CHECKBOX – кнопка пометки галочкой
    • LABEL – надпись
    • COMBOBOX - выпадающий список элементов
    • LISTBOX - обычный список элементов
    • MULTIEDIT - мультистрочное поле ввода текста
    • TREE - дерево
    • FILESELECT - выбор файла (с 4.6.37)
    • FOLDERSELECT - выбор папки (с 4.6.37)
    Пример xml :

    <freeDlg x="10" y="10" width="300" height="400" value="app freedlg" x_ok="70" y_ok="320" x_cancel="170" y_cancel="320">
        <COMBOBOX x="10" y="10" width="100" height="150" value="ccc" >
            <VALUE>1</VALUE>
            <VALUE>2</VALUE>
            <VALUE>3</VALUE>
        </COMBOBOX>
        <LISTBOX x="10" y="50" width="100" height="150" value="4" >
            <VALUE>4</VALUE>
            <VALUE>5</VALUE>
            <VALUE>6</VALUE>
        </LISTBOX>
        <EDIT x="150" y="10" width="100" height="20" value="2000" ></EDIT>
        <MULTIEDIT x="150" y="100" width="100" height="80" value="2000" ></MULTIEDIT>
        <CHECKBOX x="150" y="50" width="100" height="20" value="0" ></CHECKBOX>
        <LABEL x="150" y="80" width="100" height="20" value="label" ></LABLE>
        <TREE x="150" y="200" width="100" height="100" value="tree" >
            <VALUE value="tree0">
                <VALUE value="tree10"></VALUE>
                <VALUE value="tree20"></VALUE>
                <VALUE value="tree30"></VALUE>
            </VALUE>
            <VALUE value="tree1"></VALUE>
            <VALUE value="tree2"></VALUE>
        </TREE>
        <FILESELECT x="10" y="310" width="280" height="22" value="C:\1.txt" button="..." command="sel_file_1" ext="*.txt"></FILESELECT>
        <FOLDERSELECT x="10" y="340" width="280" height="22" value="C:\" button="..." command="sel_folder_1" ext="Выбор папки для чего-нибудь"></FOLDERSELECT>
    </freeDlg>
    

  • $is_ret_xml – возвращать ли результат работы диалога в xml
  • $separator – чем разделять возвращаемые результаты по каждому элементу управления диалога
После отработки функция возвращает результат своей работы в скрипт :
  • Результат отработки диалога – это xml или строка, описывающая все элементы диалога в том состоянии когда была нажата кнопка OK или Отмена (когда диалог был закрыт)

    Пример использования
    <?php
    // Scenario: Display a custom dialog based on XML configuration and return input as array or XML
    $xhe_host = "localhost:7010";
    if (!isset($path)){
        // Path to init.php file for connecting to the XHE API
        $path = "../../../Templates/init.php";
        // Including init.php grants access to all classes and functionality for working with the XHE API
        require($path);
    }
    
    // beginning
    echo "\n<font color=blue>app->" . basename (__FILE__) . "</font>\n";
    
    // Step 1
    echo "\nStep 1. Read file with XML dialog element layout\n";
    $xmlFilePath = "xml\\2.xml";
    $xml = SYSTEM::$textfile->read_file($xmlFilePath, 60);
    echo strlen($xml)."\n";
    
    // Example 1
    echo "\n\n2. Show dialog and return input as array\n";
    $asArray = true;
    $showFreeDlgArrayResult = WINDOW::$app->show_free_dlg($xml, $asArray);
    echo $showFreeDlgArrayResult."\n";
    
    // Example 2
    echo "\n\n3. Show dialog and return input as XML\n";
    $asArray = false;
    $showFreeDlgXmlResult = WINDOW::$app->show_free_dlg($xml, $asArray);
    echo $showFreeDlgXmlResult."\n";
    
    // end
    echo "\n";
    
    // Quit the application
    WINDOW::$app->quit();
    ?>
    # Additional paths
    import sys
    sys.path.insert(0, '../../../Templates PY/')
    
    xhe_host = "127.0.0.1:7010"
    from xweb_human_emulator import *
    
    # начало
    echo("<hr><font color=blue>app.xxxxxxxxx</font><hr>")
    
    # 1 
    echo("1. Читаем файл с расположением элементов XML диалога : ")
    xml = textfile.read_file("xml\\2.xml",60)
    echo(len(xml),"<br>")
    
    # 2 
    echo("2. Показать диалог и вернуть что введено в него в виде массива : <br>")
    echo(app.show_free_dlg(xml,false),"<br><hr>")
    
    # 3 
    echo("3. Показать диалог и вернуть что введено в него в виде XML : <br>")
    echo(app.show_free_dlg(xml))
    
    # конец
    echo("<hr><br>")
    
    # Quit
    app.quit()
    #region using
    
    using System;
    using System.Diagnostics;
    using System.Collections.Generic;
    using System.Linq;
    using System.IO;
    using System.Text;
    using System.Threading;
    
    using XHE;
    using XHE.XHE_DOM;
    using XHE.XHE_System;
    using XHE.XHE_Window;
    using XHE.XHE_Web;
    
    #endregion
    
     class Program:XHEScript
     {
    	  static void Main(string[] args)
    	  {
    			// init XHE
    			server = "localhost:7010";
    			InitXHE();
    
    			// начало
    			echo("<hr><font color=blue>app.show_free_dlg</font><hr>");
    
    			// 1 шаг
    			echo("1. Читаем файл с расположением элементов XML диалога : ");
    			string xml = (textfile.read_file("xml\\2.xml",60));echo(xml.Length+"<br>");
    			
    			// 2 шаг
    			echo("2. Показать диалог и вернуть что введено в него в виде массива : <br>");
    			echo(app.show_free_dlg(xml,false)+"<br><hr>");
    			
    			// 3 шаг
    			echo("3. Показать диалог и вернуть что введено в него в виде XML : <br>");
    			echo(app.show_free_dlg(xml));
    
    			// конец
    			echo("\n\n");
    
    			app.quit();            
    	  }
    }
    // подключим функциональные объекты, если еще не подключен
    xhe_host="127.0.0.1:7010";
    echo=require("../../../Templates JS/init.js");
    
    // начало
    echo("<hr><font color=blue>app.show_free_dlg</font><hr>");
    
    // 1 шаг
    echo("1. Читаем файл с расположением элементов XML диалога : ");
    var xml = textfile.read_file("xml\\2.xml",60);echo(xml.length+"<br>");
    
    // 2 шаг
    echo("2. Показать диалог и вернуть что введено в него в виде массива : <br>");
    echo(app.show_free_dlg(xml,false)+"<br><hr>");
    
    // 3 шаг
    echo("3. Показать диалог и вернуть что введено в него в виде XML : <br>");
    echo(app.show_free_dlg(xml));
    
    // конец
    echo("\n");
    
    // Quit
    app.quit();

    =============================================
    App    Объекты    DOM  System  Vision  Web  Window        
    =============================================
    если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
    .