Jump to content

stas

uniGUI Subscriber
  • Posts

    489
  • Joined

  • Last visited

  • Days Won

    37

Everything posted by stas

  1. Вы не можете отправить файл, пока его не попросили, работа с вебсервером ведётся в режиме вопрос ответ, потому и виснет
  2. Сам по себе файл не отправится Варианты 1) Таймер 2) Long Poll 3) WebSocket Наиболее просто для разработчика таймер
  3. Добрый вечер. Проанализировал я Ваш вопрос. Постулируем следующее : В один момент открыта только одна подчиненная строчка (остальные закрываются) Используя плагин 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 напишите название Вашей контейнер панели. Думаю с гридом получится также "Я нашёл этому поистине чудесное доказательство, но поля книги слишком узки для него." Всего доброго.
  4. Можете, обрабатывайте UniServerModule.OnHttpDocument или UniServerModule.OnHttpCommand
  5. Вы говорите о фаршадовском ГиперСервере? Я не совсем понимаю, каким образом его заставить работать на нескольких машинах, т.е. сам гиперсервер находится на одной машине, а процессы запускаются на второй и третьей ?
  6. Гиперсервер работает в контексте одной машины, де факто он запускает несколько процессов приложения и работает с ними как прокси. В случае очень большого количества пользователей этого будет недостаточно, потребуется несколько машин.
  7. Я более чем уверен, что унигуи не Ваш вариант, Это сегмент корпоративных решений. То о чем Вы говорите ближе к мас маркету. Можно попробовать вариант nginx с балансировкой, на нескольких серверах, и конечно тут топорно с прямым доступом к бд будет сложно.
  8. Добрый вечер, крайне мало данных База находится на том же сервере ? Унигуи на сессию расходует от 5 до 100 мб (возможно больше) Это в случае, если Вы фетчите всю таблицу(и) в память и оперируете ей(ими) вольготно. Я Вам рекомендую проверить на одном пользователе, а потом умножить потребляемую мощность на ожидаемое количество. (/server в проекте) Вы получите адекватное значение. Если Вы заложите в сервер порядка 32гб оперативной памяти, я думаю , Вы сможете некоторое время работать спокойно. Очень много зависит от размера таблиц, и как Вы с ними работаете.
  9. Вообще для этого существует консоль хрома, она ясно и доходчиво объясняет
  10. Дело в том, что это стандартный инсталлятор InnoSetup Достаточно удобный и дельфилюбивый
  11. Конечно, это же 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;
  12. Назойливы, молодой человек, назойливы. Посмотрите хотя бы Ваши письма, касательно сохранения html в картинку. Сергей, было бы неплохо, если бы Вы вначале поискали. Извините, если обидел.
  13. И не получится, то что Вы выслали, это работа с TwebBrowser, разные принципы. Потому используйте вариант из FMSoft\Framework\uniGUI\Demos\Desktop\HTML2Image Помимо этого на wkhtmltopdf.org Есть dll, которая делает тоже самое (пробовал pdf, получилось) Использовать dll в проекте достаточно кошерно.
  14. stas

    Диалог SaveTo

    Нельзя, броузер не передает серверу структуру каталогов. В случае upload путь к файлу будет c:\fakepath
  15. Hello When I update row for example Dataset.Locate('id',myId) Dataset.Edit; Dataset.FieldbyName('somefield').value:=somevalue; Dataset.Post; And Dataset.RecNo not equal Grid.Row ( not paged grid) Store was realoading Can i use "smart" reload row without reload store ? Thank
  16. В принципе сложностей не вижу. Учитывая, что такой код работает <head> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.9.0-alpha1/katex.min.css" integrity="sha384-8QOKbPtTFvh/lMY0qPVbXj9hDh+v8US0pD//FcoYFst2lCIf0BmT58+Heqj0IGyx" crossorigin="anonymous"> <script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.9.0-alpha1/katex.min.js" integrity="sha384-GR8SEkOO1rBN/jnOcQDFcFmwXAevSLx7/Io9Ps1rkxWp983ZIuUGfxivlF/5f5eJ" crossorigin="anonymous"></script> </head> <body> <script> document.write(katex.renderToString("c = \\pm\\sqrt{a^2 + b^2}")); </script> </body> Попробуйте какому-нибудь Ext.Panel сделать update (katex.renderToString("c = \\pm\\sqrt{a^2 + b^2}"))
  17. nginx reverse proxy + unigui
  18. //frmoxidemodinstaller.Caption := 'Done Downloading. Extracting...'; frmoxidemodinstaller in other thread
  19. http://stackoverflow.com/questions/4691699/how-to-convert-crt-to-pem
×
×
  • Create New...