-
Posts
2812 -
Joined
-
Last visited
-
Days Won
13
Content Type
Profiles
Forums
Events
Everything posted by x11
-
Video not available
-
Use parameters in SQL-query Query1.ParamByName('DateTimeField1').AsDateTime := uniDateTime1.Date;
-
137. Неправильно отрисовываются мобильные элементы - они становятся прозрачными в некоторых темах, если указать Align := alTop, ссылка.
-
Я так понял, что ошибка проявляется, если у элементов указать свойства Align := alTop.
-
На мобильной форме лежат 2 элемента: TunimSelect и TUnimEdit. В теме Material через них видна предыдущая форма. т.е. эти два элемента прозрачны. Никаких CSS свойств к ним я не применял. Так же на форме лежат еще и 2 сетки TUnimDBGrid, но они не прозрачны. В других темах проблем нет.
-
попробуйте заморозить 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`а (владельца). Пример. Запустить процедуру/поток или что там у тебя. Запомнить логин пользователя. Пользователю выдавать сообщение, что он будет оповещен по завершению, даже если работа будет закончена завтра. Когда процедура закончит работу, то нужно сохранить данные куда-то, где пользователь сможет скачать данные или просмотреть их в окне в любое время, далее нужно найти сессию пользователя и отправить ему оповещение, а если такой сессии уже нет (пользователь уже вышел из программы), то при следующем входе этого пользователя в программу, выдать ему сообщение, что данные можно получить/увидеть/скачать, нажав ту или иную кнопку. Также выполненную работу можно отправить по эл. почте, Телеграм-ботом и т.д.
-
Загрузил на сервер очередную новую версию 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; Как быть в таких случаях? Отключить автопродление сессии?
-
-
Спасибо. Помогло. 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; }
-
Присвоить класс не получается 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);' ); код не работает
-
Сделал пока так: 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);' );
-
Отлично. Спасибо. А можно еще спросить, как кнопку увеличить или даже сделать ее размер от надписи типа fit-content по ширине? Какая из них кнопка 0, 1 и 2? Например, как назначить кнопке свой CSS-класс, чтобы через CustomCSS упралять шириной или другими свойствами?
-
Да. Не знаю, как получилось значение -1. Сам себя запутал. Потом посмотрел, какие свойства имеет компонента по умолчанию и понял, в чем проблема. Ложная тревога.
-
Поставил MinValue тоже 0, проблема ушла.
-
-
136. TuniFileUpload/TunimFileUpload. Нет свойств для изменения размеров окна по высоте, ссылка.
-
Вы меня не поняли, наверное. Смысл менять высоту окна заключается в том, чтобы и размер списка с файлами тоже увеличился. Как видно, из снимка, список не увеличился. UniSession.AddJS( 'Ext.defer(function(){'+ ' var fWin = Ext.WindowManager.getActive();'+ ' if (fWin) {'+ ' fWin.setHeight(300);'+ ' }'+ '}, 200);' );
-
Я заполняю свойство Value у компоненты uniSpinEdit. При этом компонента выделена красным и появляется надпись, что значение в этом поле не может больше 0.
-
no i don't know how
-
UnimDBEdit - Inputtype=number -> decimal point is ignored (both "," and ".")
x11 replied to likemike's topic in uniGUI Mobile
вопрос все еще актуален -
There is no property Height for TUniFileUpload. How to change the height of the window and the height of the file list box? thanx
-
there is no color select component for mobile Maybe there are ways how to use other (third) components for color selection?
-
there is no color select component for mobile
-
ого, не прошло и года, как разработчики смогли исправить эту проблему в версии 1556
-
for mobile to?