Jump to content
uniGUI Discussion Forums

stas

uniGUI Subscriber
  • Content Count

    222
  • Joined

  • Last visited

  • Days Won

    19

Everything posted by stas

  1. stas

    Responsive design example

    Добрый вечер. Пока текстовку уберу, не понял вопрос модератора
  2. stas

    Responsive design example

    Извините, не понял
  3. Я когда-то делал чат на вебсокетах фаршадовской библиотекой, поищу на днях попытаюсь прикрепить пример, пока найти не могу, простите
  4. Добрый вечер, у меня нет такого компонента, извините. Как Вы собираетесь это делать? Средствами ИИС у вас не получится, только нгинкс.
  5. Рад, если будут вопросы, обращайтесь, я с унигуи ещё с тех времён, когда Фаршад в ньюсах публиковал информацию (сайта не было)
  6. Я имею в виду TUniTimer, Только он должен лежать на форме
  7. stas

    Вложенные таблицы

    Расскажете о результатах? Там ещё select нужно обрабатывать И реалигн контролов нужно делать Грид встал отлично
  8. А почему у Вас threadtimer, должен быть обычный а в потоке давайте uniservermodule какой-то флаг, а в таймере его проверяйте У меня так телеграмовский бот работает
  9. Вы не можете отправить файл, пока его не попросили, работа с вебсервером ведётся в режиме вопрос ответ, потому и виснет
  10. Сам по себе файл не отправится Варианты 1) Таймер 2) Long Poll 3) WebSocket Наиболее просто для разработчика таймер
  11. stas

    Вложенные таблицы

    Добрый вечер. Проанализировал я Ваш вопрос. Постулируем следующее : В один момент открыта только одна подчиненная строчка (остальные закрываются) Используя плагин RowWidget Вы можете это сделать. Возьмите демку gedit киньте туда контейнер панель, закиньте туда два дбедита с FirstName и LastName После этого допишите в код следующий текст type TMyGrid=class(TUniDBGrid); procedure TMainForm.UniFormCreate(Sender: TObject); begin TMyGrid(UniDBGrid1).JSConfigPlugin('Ext.grid.plugin.RowWidget',['pluginId',-100,'selectRowOnExpand',true,'widget',TMyGrid(UniDBGrid1).JsObject('xtype:"panel", height:200')]); UniSession.AddJS(TMyGrid(UniDBGrid1).JSName+'.getView().lastId=-1;'); UniSession.AddJS(TMyGrid(UniDBGrid1).JSName+'.getView().addListener("expandbody",function(rowNode, record, nextBd, widget)'+'{if (this.grid.getPlugin(-100) && this.lastId!=-1) this.grid.getPlugin(-100).toggleRow(this.lastId,record); this.lastId=record.id; widget.setHeight('+IntToStr(UniHiddenPanel2.Height)+');'+UniHiddenPanel2.JsName+'.setPosition(0,0); widget.add('+UniHiddenPanel2.JSName+');},'+TMyGrid(UniDBGrid1).JSName+'.getView());'); UniSession.AddJS(TMyGrid(UniDBGrid1).JSName+'.getView().addListener("collapsebody",function(rowNode, record, nextBd, widget){ this.lastId=-1;},'+TMyGrid(UniDBGrid1).JSName+'.getView());'); end; //Вместо UniHiddenPanel2 напишите название Вашей контейнер панели. Думаю с гридом получится также "Я нашёл этому поистине чудесное доказательство, но поля книги слишком узки для него." Всего доброго.
  12. stas

    Аналог DataSnap

    Можете, обрабатывайте UniServerModule.OnHttpDocument или UniServerModule.OnHttpCommand
  13. Вы можете привести пример?
  14. Вы говорите о фаршадовском ГиперСервере? Я не совсем понимаю, каким образом его заставить работать на нескольких машинах, т.е. сам гиперсервер находится на одной машине, а процессы запускаются на второй и третьей ?
  15. Гиперсервер работает в контексте одной машины, де факто он запускает несколько процессов приложения и работает с ними как прокси. В случае очень большого количества пользователей этого будет недостаточно, потребуется несколько машин.
  16. Я более чем уверен, что унигуи не Ваш вариант, Это сегмент корпоративных решений. То о чем Вы говорите ближе к мас маркету. Можно попробовать вариант nginx с балансировкой, на нескольких серверах, и конечно тут топорно с прямым доступом к бд будет сложно.
  17. Добрый вечер, крайне мало данных База находится на том же сервере ? Унигуи на сессию расходует от 5 до 100 мб (возможно больше) Это в случае, если Вы фетчите всю таблицу(и) в память и оперируете ей(ими) вольготно. Я Вам рекомендую проверить на одном пользователе, а потом умножить потребляемую мощность на ожидаемое количество. (/server в проекте) Вы получите адекватное значение. Если Вы заложите в сервер порядка 32гб оперативной памяти, я думаю , Вы сможете некоторое время работать спокойно. Очень много зависит от размера таблиц, и как Вы с ними работаете.
  18. stas

    Сменить название вкладки.

    Вообще для этого существует консоль хрома, она ясно и доходчиво объясняет
  19. Дело в том, что это стандартный инсталлятор InnoSetup Достаточно удобный и дельфилюбивый
  20. Можно, намек в посте про локализацию
  21. Конечно, это же dfm uniGUIServerForm.dfm Или так procedure TUniServerModule.UniGUIServerModuleCreate(Sender: TObject); var i,j:integer; begin for I := 0 to Screen.FormCount-1 do begin for j:=0 to Screen.Forms.ComponentCount-1 do begin if GetPropInfo(Screen.Forms.Components[j],'Caption')<>nil then SetStrProp(Screen.Forms.Components[j],'Caption','Тест'); end; end; end;
  22. stas

    Кроссбраузерность?

    Назойливы, молодой человек, назойливы. Посмотрите хотя бы Ваши письма, касательно сохранения html в картинку. Сергей, было бы неплохо, если бы Вы вначале поискали. Извините, если обидел.
  23. И не получится, то что Вы выслали, это работа с TwebBrowser, разные принципы. Потому используйте вариант из FMSoft\Framework\uniGUI\Demos\Desktop\HTML2Image Помимо этого на wkhtmltopdf.org Есть dll, которая делает тоже самое (пробовал pdf, получилось) Использовать dll в проекте достаточно кошерно.
  24. stas

    Диалог SaveTo

    Нельзя, броузер не передает серверу структуру каталогов. В случае upload путь к файлу будет c:\fakepath
×