Jump to content

Farshad Mohajeri

Administrators
  • Posts

    12122
  • Joined

  • Last visited

  • Days Won

    808

Everything posted by Farshad Mohajeri

  1. 1) ClientWidht, ClientHeightcan only be set at design time. At runtime use Width and Height 2) Form is freed automatically. FreeOnClose is true by default.
  2. In all modes, either ISAPI or standalone, there is no limit on number of connections.
  3. It depends on the built-in browser in CE. If it does support Javascript then it must be supported. What version of CE is this?
  4. Mask can not be displayed in a server event.
  5. A reporting tool is whole different story and can't be a part of unigui.
  6. There are two demos: \demos\Dialogs \demos\Dialogs Anonymous Callback
  7. You can already do this with MessageDlg.
  8. We have UniSynEdit. See our HTML Demo.
  9. Farshad Mohajeri

    CSS

    You can try loading CunstomCSS in below event. procedure TUniServerModule.UniGUIServerModuleBeforeInit(Sender: TObject); begin end;
  10. Farshad Mohajeri

    CSS

    See our MegaDemo.
  11. It is JS script not pascal code. Use it inside a client event. See one of our Client Event demos.
  12. It is related to internet lag. i.e. ping time. When ping time is > 200ms it may lead users to double click on buttons and cast same command several times. I'm aware of this issue. Delay can not be related to number of simultaneous access unless you talk about a really heavy traffic like hundreds of concurrent active connections. If your events are synchronous the only way is to block UI until each event is fully processed. There is no other way. There is no way for framework to handle this situation internally. Of course, we can add a mode which UI is blocked after each Ajax request. This will reduce UI experience quality but you need it if your app is designed and works synchronously. If one event can't be executed more than once you need to protect it using client side UI masking techniques. Close window issue when user clicks more than once will be resolved by us. I'm aware of your problem as I encountered same issues myself in the past. Actually, there is no performance issue here, only lag from slow or distance internet connection. I don't know how heavy your app relies on Ajax events but if each and every of uset actions fires an Ajax request then your app may not work efficiently over a slow connection. In classical approach web apps were static Forms where user fills offline then click submit and send them to the server. Now with Ajax technology developers tries to use Ajax events in each action which increases number of requests. Biggest problem here is when Ajax events must be executed in certain order and executed only once. In this case several techniques are used to lock UI until Ajax task is processed. In general use of Ajax events can be abused, because some developers forget that they're designing an app for the internet not for the desktop. OK uniGUI promises both desktop and web, but it doesn't mean that developers shouldn't follow proper guidelines for web application development. That's one of the reasons which force me to push VCL part of the framework to background or even remove it from framework, because some developers misunderstand what it is meant to be. One of the misuses here is over-using of Ajax events. It leads to web apps where each user click fires one or more Ajax event. It makes app slow on the internet and difficult to manage when user cast events faster than server can handle. For example several times I've seen that developers do things like below: procedure TMainForm.UniEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = 13 then begin // do somthing end; end; Which doesn't make sense at all when you deploy your app on the web. It would make sense only in a gigabit LAN, but certainly makes no sense on the internet. You must narrow down your issues to specific cases and I'll try to guide to a proper solution. Again, as I said above many times the only solution is masking UI. Thanks
  13. MainForm.UniURLFrame1.getEditorBody().innerHTML You can use above script but it will not work if frame loads an external URL. Browser security restrictions prevent that.
  14. It would be a perfect world if we all could minimize our risks to ZERO. In Delphi world majority of 3rd party component vendors are one-person entities. Those vendors that "look" like companies with many people are actually individual developers who work on different component sets and joined under a single brand name. If you don't want to rely on one person then you'll be having a hard time finding good 3rd party components for Delphi. The reason behind this is size of Delphi market which is small compared to .NET and other development tools. Delphi is still a big player, but not as big as it was once before. So generally speaking not many companies would take the risk of investing in Delphi 3rd party components without knowing the pay off in advance. That's why majority of Delphi components start as one-man endeavor. One man can take many risks without sacrificing lots of resources and continue working on the project alone. Same is true for uniGUI and FMSoft. At very beginning we started as a very small team, but as time passed I realized that developing the main core, which was my responsibility, was advancing too slow to allow other team members do anything useful on their parts. So I decided to work on product alone until it passes a certain level of majority. Once that threshold is passed and core architecture becomes intact I plan to draw more people into picture to speed up development.
  15. It should be doable. You need to start trying by adding unigui controls to your script engine.
  16. It is a general question related to web technologies. I don't know if it is possible for an iframe to access url of its container. You need to google about it.
  17. I'm not sure if I truly understand you. There are various web pages on the internet which are created by "other" people and those pages contain embedded iframes which call your uniGUI app?
  18. Feature request logged #1343
  19. Changing DataSet cursor should be enough. However, if the row is not visible Grid may not be scrolled automatically.
  20. Your question is ambiguous. Are you owner of that "another domian"? Or someone else has setup a domain with an iframe calling your app url? Can you describe it with a real example?
  21. So answer is 200.163.190.36? Since I'm running the uniGUI server I know what my server IP is which is 200.163.190.36 right?
×
×
  • Create New...