Jump to content

x11

uniGUI Subscriber
  • Posts

    2812
  • Joined

  • Last visited

  • Days Won

    13

Everything posted by x11

  1. Use parameters in SQL-query Query1.ParamByName('DateTimeField1').AsDateTime := uniDateTime1.Date;
  2. 137. Неправильно отрисовываются мобильные элементы - они становятся прозрачными в некоторых темах, если указать Align := alTop, ссылка.
  3. Я так понял, что ошибка проявляется, если у элементов указать свойства Align := alTop.
  4. На мобильной форме лежат 2 элемента: TunimSelect и TUnimEdit. В теме Material через них видна предыдущая форма. т.е. эти два элемента прозрачны. Никаких CSS свойств к ним я не применял. Так же на форме лежат еще и 2 сетки TUnimDBGrid, но они не прозрачны. В других темах проблем нет.
  5. попробуйте заморозить memo или веб-сессию Вообще, в VCL, например, если много строк добавляется в визуальную компоненту, то там есть спец. методы типа memoExecSQL.Lines.BeginUpdate цикл добавления строк memoExecSQL.Lines.EndUpdate Но в uniGUI есть свои методы: SuspendLayouts; цикл добавления строк ResumeLayouts; А чтобы сессия не заканчивалась, если работы не много, но на одну сессию не хватает: uniMainModule.AllowSess := True;// автопродление сессии пока идет работа SuspendLayouts; что-то делаем ResumeLayouts; uniMainModule.AllowSess := false; procedure TUniMainModule.UniGUIMainModuleSessionTimeout(ASession: TObject; var ExtendTimeOut: Integer); begin if fAllowSess then ExtendTimeOut := UniServerModule.SessionTimeout;// продлеваем сессию end; Но пользователь может закрыть браузер, а когда откроет, то сессия будет все равно закрыта. А если и не закрыта, то ID сессии уже поменяется и при отправке в эту сессию файла, файл отправится в никуда. Но, если работы уж очень много, то вообще, правильней делать как-то так, чтобы это не зависело от веб-сессии. Например, в модуле сервера, чтобы не было привязки к mainModule, т.к. mainModule при уничтожении будет уничтожать все, где он указан в качестве Owner`а (владельца). Пример. Запустить процедуру/поток или что там у тебя. Запомнить логин пользователя. Пользователю выдавать сообщение, что он будет оповещен по завершению, даже если работа будет закончена завтра. Когда процедура закончит работу, то нужно сохранить данные куда-то, где пользователь сможет скачать данные или просмотреть их в окне в любое время, далее нужно найти сессию пользователя и отправить ему оповещение, а если такой сессии уже нет (пользователь уже вышел из программы), то при следующем входе этого пользователя в программу, выдать ему сообщение, что данные можно получить/увидеть/скачать, нажав ту или иную кнопку. Также выполненную работу можно отправить по эл. почте, Телеграм-ботом и т.д.
  6. Загрузил на сервер очередную новую версию EXE-файла (имеется ввиду через кнопку "Upload new version" HyperServer`а). Реально к серверу подключено сейчас 3 устройства. При нажатии на кнопку в браузере "Обновить страницу" подключение происходит к каким-то старым версиям. Но не к новым. Т.е. HyperServer подключает меня к старой версии, к 101, к 103, но не к 106. Такое впечатление, что после того, как я закрыл браузер или вкладку, или просто нажал кнопку "Обновить страницу" в браузере, старая сессия НЕ завершается. Получается, что сервер (ServerModule) не уничтожает уже ненужный MainModule, к которому никто более не подключен. Добавлю еще, что у меня есть код для автоматического продления сессии: procedure TUniMainModule.UniGUIMainModuleSessionTimeout(ASession: TObject; var ExtendTimeOut: Integer); begin if not AllowTerminate then ExtendTimeOut := UniServerModule.SessionTimeout;// продлеваем сессию end; Как быть в таких случаях? Отключить автопродление сессии?
  7. Спасибо. Помогло. UniSession.AddJS( 'Ext.defer(function(){'+ ' var fWin = Ext.WindowManager.getActive();'+ ' if (fWin) {'+ ' fWin.setHeight(300);'+ ' try {'+ ' fWin.query("button")[0].alignTo(fWin, "br-br", [-20, -20]);'+ ' fWin.query("button")[1].alignTo(fWin, "bl-bl", [20, -20]);'+ ' fWin.query("button")[0].setUserCls("btnWindowPhoto");'+ ' fWin.query("button")[1].setUserCls("btnWindowPhoto");'+ ' fWin.query("textarea")[0].setHeight(fWin.getHeight() - 90)'+ ' } catch (err) {}'+ ' }'+ '}, 10);' ); CustomCSS: .btnWindowPhoto{ width: auto !important; }
  8. Присвоить класс не получается UniSession.AddJS( 'Ext.defer(function(){'+ ' var fWin = Ext.WindowManager.getActive();'+ ' if (fWin) {'+ ' fWin.setHeight(300);'+ ' try {'+ ' fWin.query("button")[0].alignTo(fWin, "br-br", [-20, -20]);'+ ' fWin.query("button")[1].alignTo(fWin, "bl-bl", [20, -20]);'+ ' fWin.query("button")[0].setCls("btnWindowPhoto");'+ ' fWin.query("button")[1].setCls("btnWindowPhoto");'+ ' fWin.query("textarea")[0].setHeight(fWin.getHeight() - 90)'+ ' } catch (err) {}'+ ' }'+ '}, 10);' ); код не работает
  9. Сделал пока так: UniSession.AddJS( 'Ext.defer(function(){'+ ' var fWin = Ext.WindowManager.getActive();'+ ' if (fWin) {'+ ' fWin.setHeight(300);'+ ' try {'+ ' fWin.query("button")[0].alignTo(fWin, "br-br", [-20, -20]);'+ ' fWin.query("button")[1].alignTo(fWin, "bl-bl", [20, -20]);'+ ' fWin.query("button")[0].setWidth("auto");'+ ' fWin.query("button")[1].setWidth("auto");'+ ' fWin.query("textarea")[0].setHeight(fWin.getHeight() - 90)'+ ' } catch (err) {}'+ ' }'+ '}, 10);' );
  10. Отлично. Спасибо. А можно еще спросить, как кнопку увеличить или даже сделать ее размер от надписи типа fit-content по ширине? Какая из них кнопка 0, 1 и 2? Например, как назначить кнопке свой CSS-класс, чтобы через CustomCSS упралять шириной или другими свойствами?
  11. Да. Не знаю, как получилось значение -1. Сам себя запутал. Потом посмотрел, какие свойства имеет компонента по умолчанию и понял, в чем проблема. Ложная тревога.
  12. Поставил MinValue тоже 0, проблема ушла.
  13. и как нужно заполнить свойства, чтобы можно было вводить большие значения?
  14. 136. TuniFileUpload/TunimFileUpload. Нет свойств для изменения размеров окна по высоте, ссылка.
  15. Вы меня не поняли, наверное. Смысл менять высоту окна заключается в том, чтобы и размер списка с файлами тоже увеличился. Как видно, из снимка, список не увеличился. UniSession.AddJS( 'Ext.defer(function(){'+ ' var fWin = Ext.WindowManager.getActive();'+ ' if (fWin) {'+ ' fWin.setHeight(300);'+ ' }'+ '}, 200);' );
  16. Я заполняю свойство Value у компоненты uniSpinEdit. При этом компонента выделена красным и появляется надпись, что значение в этом поле не может больше 0.
  17. There is no property Height for TUniFileUpload. How to change the height of the window and the height of the file list box? thanx
  18. there is no color select component for mobile Maybe there are ways how to use other (third) components for color selection?
  19. there is no color select component for mobile
  20. ого, не прошло и года, как разработчики смогли исправить эту проблему в версии 1556
×
×
  • Create New...