Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 12/13/18 in all areas

  1. Hello Roberto, Short answer : Yes, you can trust on Unigui. Its designer is called by the community "the magician". Long answer : To be honest, i have not customers who need 1000 concurrent users. But i would like to speak about its hight stability. 1. Fisrt, Unigui is not designed for web pages only. It's a great framework for web applications. 2. For my own needs, I have developped a licence manager ( unigui isapi application), working 24/24, 7/7 since 2016. Very stable. No need to restart the server (rarely, only for windows update). Only few users are using it from internet. 2. I have developped an Unigui application (HyperServer) for a private hospital. The application is working 24/24, 7/7 since march 2018. Also, very stable. 38 users. At this day, never exceed 20 concurrent sessions, as the server is windows 10 (max 20 TCP-IP connexiins, a legacy windows limitation). Soon we will move to windows Server Edition 2016. Firebird 3.0 is continually solicited, more than 5000 transactions by month and the system is very stable. Big boss is hapy and me too That's all. 3. Oh.... If farshad said you that 1000 concurrents sessions are low load balancing for Unigui today, that is because HyperServer FmSoft technology is rock !. If you see the Unigui 2019 Roadmap, a farm servers is in developpment. Mmm....that promise good surprises ! Best regards.
    2 points
  2. These are low-res gifs... take a look at the snowflakes project. You got hi-res with Jscript effect at the end. The other examples will be soon available in www.unigui.com.br only. I don't want to "spam" the forum with similar posts with the same subject. Next month, two new post using the "All about" tag series (Grids and Edits) and we will move to a new topic and series. C'ya
    1 point
  3. Hello, @RobertoLopes you are membership to unigui, why not make a test case and try via unigui tool ? and if you can share results with us, we are glad this. regards
    1 point
  4. HI Farshad, thanks :-) There are few little things that Unigui don't have for porting TOTALLY a desktop VCL application without losing any "ergonomic" features: grid scroll (virtual, without pagination), advanced lookup (with grid inside and input validation during typing), true editing in grid (cell by cell, without click or enter for edit) for a fast user input (like vcl dbgrid). With this little features, i can distribuite to my customer a web version of desktop application, without big difference and with a "wow" factor. I hope to install the same Unigui application as standalone, local network and enterprise (with HyperServer and balancing) remote farm. Please make me happy :-) Good job!
    1 point
  5. Hi! For example: 1. MainForm.Script: var IDLE_TIMEOUT = 60; //seconds var _idleSecondsCounter = 0; document.onclick = function() { _idleSecondsCounter = 0; }; document.onmousemove = function() { _idleSecondsCounter = 0; }; document.onkeypress = function() { _idleSecondsCounter = 0; }; window.setInterval(CheckIdleTime, 1000); function CheckIdleTime() { _idleSecondsCounter++; var oPanel = document.getElementById("SecondsUntilExpire"); if (oPanel) oPanel.innerHTML = (IDLE_TIMEOUT - _idleSecondsCounter) + ""; if (_idleSecondsCounter >= IDLE_TIMEOUT) { //alert("Time expired!"); //document.location.href = "logout.html"; ajaxRequest(MainForm.form, '_idle_timeout', []); } } 2. MainForm->onAjaxEvent: procedure TMainForm.UniFormAjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings); begin if EventName = '_idle_timeout' then begin // your logic ShowMessage('idle_timeout'); end; end; Best regards.
    1 point
  6. Hi, Perhaps this decision is not completely consistent your requirements, but try... 1. Add the following components: UniHTMLMemo1, UniFileUpload1 2. UniHTMLMemo1 -> ClientEvents -> UniEvents -> add function beforeInit: function beforeInit(sender, config) { config.listeners = { render: function(editor) { editor.getToolbar().add({ xtype: 'button', text: 'imageUpload', handler: function() { ajaxRequest(sender, 'uploadImage', []) } }); } } } 3. UniHTMLMemo1 -> OnAjaxEvent: procedure TMainForm.UniHTMLMemo1AjaxEvent(Sender: TComponent; EventName: string; Params: TStrings); begin if EventName = 'uploadImage' then begin UniFileUpload1.Execute end; end; 4. UniFileUpload1 -> OnCompleted: procedure TMainForm.UniFileUpload1Completed(Sender: TObject; AStream: TFileStream); var DestName : string; DestFolder : string; begin DestFolder:=UniServerModule.StartPath+'UploadFolder\'; DestName:=DestFolder+ExtractFileName(UniFileUpload1.FileName); CopyFile(PChar(AStream.FileName), PChar(DestName), False); UniSession.AddJS(UniHTMLMemo1.JSName + '.execCmd(''InsertHTML'', ''<img width="138" height="87" src="'+ 'UploadFolder/' + UniFileUpload1.FileName +'"></img>'')'); end; 5. MainForm -> OnCreate: procedure TMainForm.UniFormCreate(Sender: TObject); begin ForceDirectories(UniServerModule.StartPath+'UploadFolder'); end; 6. uses ... ServerModule ... Try, Best regards.
    1 point
×
×
  • Create New...