Открыть диалоговое окно из GO
От: Serg  
Дата: 09.11.19 09:16
Оценка:
Не знаю как сделать проще. Сделал так
package main

import (
"log"

"github.com/sciter-sdk/go-sciter"
"github.com/sciter-sdk/go-sciter/window"
)

func main() {
w, err := window.New(sciter.SW_TITLEBAR|sciter.SW_RESIZEABLE|sciter.SW_CONTROLS|sciter.SW_MAIN|sciter.SW_ENABLE_DEBUG, nil)
if err != nil {
log.Fatal("Create Window Error: ", err)
}
w.LoadHtml(form_menu() , "")
setEventHandler(w)
w.Show()
w.Run()
}

func setEventHandler(w *window.Window) {
w.DefineFunction("opendialog", func(args ...*sciter.Value) *sciter.Value {
h:=`var other
other = view.dialog{
type:View.TOOL_WINDOW,
// url: self.url("54544545"),
x:100,
y:100,
width : 480,
height : 320,
state: View.WINDOW_SHOWN,
caption:"ghjuykiuu",
};`

w.Eval(h)
return nil
})
}


func form_menu() string {

return `
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Телефонные счета</title>
<style>
button > menu { width:*; }
popup { background:black; padding:1em; border:1px solid; prototype: PopupDialog; }
</style>
<script type="text/tiscript">
self#sotr.on("click", function(){
view.opendialog("opendialog","")
})
</script>

</head>
<body>
<button|menu #main>Справочники
<menu>
<li #sotr>Сотрудники</li>
</menu>
</button>
</body>
</html>
`
}

Проблема в том что при повторном нажатии кнопки диалоговое окно не появляется.

Что я делаю не так, или есть другой способ.
И если вместо url, делаю html окно не открывается. хотя текст диалогового окна одинаковый
Re: Открыть диалоговое окно из GO
От: c-smile Канада http://terrainformatica.com
Дата: 10.11.19 04:33
Оценка:
Здравствуйте, Serg, Вы писали:

S>Не знаю как сделать проще. Сделал так


А почему так... мммм... хитровывернуто ?

Зачем там заходить в Go чтобы показать диалог?

function showDialog() {
  var result = view.dialog {
    url: $url(dialog.htm), // dialog.htm is in the folder as this file
    ...
  };
  return result; 
}

event click $(#sotr) {
   var r = showDialog();
   debug log: r;
}
Отредактировано 10.11.2019 4:34 c-smile . Предыдущая версия .
Re[2]: Открыть диалоговое окно из GO
От: Serg  
Дата: 10.11.19 09:39
Оценка:
Здравствуйте, c-smile:Спасибо. Поменяю логику.
Re[2]: Открыть диалоговое окно из GO
От: Serg  
Дата: 12.11.19 16:29
Оценка:
Здравствуйте, c-smile
А как у диалогового окна открыть еще одно диалоговое окно.
Как я понимаю view надо на что то поменять?




package main

import (
    "io/ioutil"
    "log"
    "os"
    "path/filepath"
    "strings"

    "github.com/sciter-sdk/go-sciter"
    "github.com/sciter-sdk/go-sciter/window"
)

var Dir, File string


func main() {
    dir, err := ioutil.TempDir("", "example")
    Dir = dir
    defer os.RemoveAll(dir)
    w, err := window.New(sciter.SW_TITLEBAR|sciter.SW_RESIZEABLE|sciter.SW_CONTROLS|sciter.SW_MAIN|sciter.SW_ENABLE_DEBUG, nil)
    tmpfn := filepath.Join(Dir, "1.htm")
    if err := ioutil.WriteFile(tmpfn, []byte(form_menu()), 0644); err != nil {
      log.Fatal(err)
    }

    File = strings.Replace(tmpfn, "\\", "/", -1)
    if err != nil {
       log.Fatal("Create Window Error: ", err)
    }
    w.LoadFile(File )
    setEventHandler(w)
    w.Show()
    w.Run()
}

func setEventHandler(w *window.Window) {
    w.DefineFunction("opendialog", func(args ...*sciter.Value) *sciter.Value {
        return sciter.NewValue(File)
    })
}


func form_menu() string {

    return `
<html>
   <head>
     <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
     <title>Телефонные счета</title>
     <style>
        button > menu { width:*; }
        popup { background:black; padding:1em; border:1px solid; prototype: PopupDialog; }
     </style>
     <script type="text/tiscript">
        function showDialog(r) {
           var result = view.dialog { url: r };
           return result; 
        }
        self#sotr.on("click", function(){             
            var r = view.opendialog("opendialog",""); 
            showDialog(r);
        })
     </script>

   </head>
   <body>
      <button|menu #main>Справочники
        <menu>
          <li #sotr>Сотрудники</li>
        </menu>
      </button>
   </body>
</html>
`
}
Отредактировано 13.11.2019 7:35 Serg . Предыдущая версия . Еще …
Отредактировано 12.11.2019 16:30 Serg . Предыдущая версия .
Re[3]: Открыть диалоговое окно из GO
От: c-smile Канада http://terrainformatica.com
Дата: 12.11.19 19:55
Оценка:
Здравствуйте, Serg, Вы писали:

Тут на форуме кнопочка есть (ака "Колеса") для кода.
Re[4]: Открыть диалоговое окно из GO
От: Serg  
Дата: 13.11.19 07:36
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, Serg, Вы писали:


CS>Тут на форуме кнопочка есть (ака "Колеса") для кода.


Исправился....
Re[5]: Открыть диалоговое окно из GO
От: c-smile Канада http://terrainformatica.com
Дата: 14.11.19 19:03
Оценка:
Здравствуйте, Serg, Вы писали:

S>Здравствуйте, c-smile, Вы писали:


CS>>Здравствуйте, Serg, Вы писали:


CS>>Тут на форуме кнопочка есть (ака "Колеса") для кода.


S>Исправился....

S>

Замечательно. Теперь словами опиши что тебе надо. И, например, почему из кода диалога ты не можешь написать view.dialog {} ?
Re[6]: Открыть диалоговое окно из GO
От: Serg  
Дата: 15.11.19 07:01
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, Serg, Вы писали:


S>>Здравствуйте, c-smile, Вы писали:


CS>>>Здравствуйте, Serg, Вы писали:


CS>>>Тут на форуме кнопочка есть (ака "Колеса") для кода.


S>>Исправился....

S>>

CS>Замечательно. Теперь словами опиши что тебе надо. И, например, почему из кода диалога ты не можешь написать view.dialog {} ?


Меня товарищ попросил написать программку для одного учебного заведения. 200 преподавателей. Работать будут из дома, работы.
Я подумал ошибки, увеличение функционала, а я один...
Выход придумал такой, сделать клиента который по websocket подключается к серверу и получает html код.
Нажал на кнопку обратился к серверу: получил форму — нарисовал, отправил данные — сервер сохранил.

Отсюда проблемы на клиенте не планируется хранить html формы (хотя планирую хранить html шаблоны-без данных)

проект будет открытый, когда что-нибудь вразумительное получится выложу на гитхаб.

Вкратце так, что то типа браузера получиться должно.

Частично уже сделал.

не нашел как файл прикрепить могу на почту сбросить.
Отредактировано 15.11.2019 13:43 Serg . Предыдущая версия .
Re[7]: Открыть диалоговое окно из GO
От: c-smile Канада http://terrainformatica.com
Дата: 17.11.19 15:48
Оценка:
Здравствуйте, Serg, Вы писали:

S>Выход придумал такой, сделать клиента который по websocket подключается к серверу и получает html код.

S>Нажал на кнопку обратился к серверу: получил форму — нарисовал, отправил данные — сервер сохранил.

S>Вкратце так, что то типа браузера получиться должно.


Непонятно почему тогда диалоги?

Сделай одно окно с таким содержимым

<html>
  <body>
    <frame#content />
  </body>
</html>


и грузи в тот frame что тебе надо.

Можешь к тому frame добавить history:

<frame#content history />


Тогда у frame будут методы frm.goBack(), frm.goForward(), frm.canGoBack()
Re[8]: Открыть диалоговое окно из GO
От: Serg  
Дата: 18.11.19 04:18
Оценка:
Здравствуйте, c-smile, Вы писали:

Спасибо за помощь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.