Jump to content

Harry Rogers

uniGUI Subscriber
  • Posts

  • Joined

  • Last visited

  • Days Won


Harry Rogers last won the day on September 7

Harry Rogers had the most liked content!

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Harry Rogers's Achievements

Advanced Member

Advanced Member (4/4)



  1. All our work is done server side - so it's just pretty standard Delphi stuff, no Javscript etc required. In one application we have tablets out in the field returning HTML data to the server. When the UNIGUI user browses the list of returned files we check to see if the same file name exists but with a PDF extension rather than HTM - if not we simply call wkhtmltopdf.exe from a procedure in mainmodule in a hidden window with param1 as source html and param2 as the required PDF. Once the PDF does exist we display/print as required. you could use any Delphi function that runs an external exe (ShellExecute, ShellExecureEx, WinExec, CreateProcess....) This approach works fine for us, it's easy to implement and allows additional processing if the called process is actually a batch file with a list of other things to do in it, rather than just converting to a PDF. Cheers
  2. We have used this in a number of places not just UniGui https://wkhtmltopdf.org/
  3. Hi We have used ICS components a lot over the years - and have been very pleased with them. However we have found their architecture not well suited to Unigui. In our implementations we tend to use a VCL program to send emails which we call from the Unigui sessions as needed, with parameters supplied either via the command line or database tables - there are other discussions and demos on the forum regarding email solutions. There is a thread from 2010 relating to ICS - Farshad's reply summed it up. Best of luck It seems that Overbyte components use Async TCP/IP communication which relies on Windows message events. This requires component to reside inside a thread which can receive Windows events. In unigui there are no such dedicated threads to sessions. Threads are created and controlled by the Web server and for sessions threads are only available during event execution. Moreover, it is not guaranteed that a session will be always served by same thread. It can thread A in first event and thread B in next event.
  4. Thanks for this - it's plainly a lot of work. Looks like a very useful resource already.
  5. Thanks for this I've tried it on a Moto g7 power (Android 9) Using Chrome 84.04147.111 All appears to work as expected. Nice job.
  6. I've been using Contabo vps for the past 4 months (4core 8GB,200GB). It's certainly the cheapest and performance has so far been fine - though not a heavy load. It's worth mentioning - they appear to do any required maintenance during normal (GMT) service hours - which has so far resulted in 2, 1 hour periods of inaccessibility - they do have multiple clusters of VPS which are serviced at different times though - and if you have more than one you can request to have them housed on separate and machines and/or in two different data centres - so you can ensure constant accessibility if you share data and apps across them. All support questions have been answered promptly. Note They don't provide any additional firewall in front of your machine as many other providers do.
  7. Thanks very much for sharing this - it seems to work very well. What's the best way to block arriving data so that only specific source Ip addresses trigger a genuine ws.onmessage event? Many thanks
  8. Great, glad to here its working for you. All the best
  9. Sorry you misunderstand me. The main module holds the data set and the export component. the form 'frmSQLRes' has a button named 'btn2Excel' it's the onClick of that which is the code I showed above. Good luck
  10. Hi I have used SMExportToExcel [the components 'about' gives ver 5.0 (b17)]. without issue. I just recompiled an old app (was xe5) using Xe8 and UniGui It still exports fine. The form with a UniDbGrid (whose dataset is on the MainModule) has a button: It simply sets the filename (from a procedure that gets the query details) on a SMExporttoXLS component that is on the MainModule, and runs the export. procedure TfrmSQLRes.btn2ExcelClick(Sender: TObject); var fname : string; begin fname := makeFilename('.XLS'); unimainmodule.SMExportToXLS1.filename := fname; unimainmodule.SMExportToXLS1.Execute; end;
  11. This looks great - thanks for posting. On a Moto E4+ mobile (chrome 73.03683.75 Android 7.1.1) I never get a prompt to allow the camera and can't find a way to enable it, the site settings within the browser only provide the option to block camera or prompt for permission (which never happens)
  12. Sorry - Not sure why that failed Here we go again https://tinyurl.com/ybezp8qr
  • Create New...