Jump to content

naozuka

Members
  • Posts

    21
  • Joined

  • Last visited

Everything posted by naozuka

  1. I'm sharing my version of recaptcha v3 with Delphi XE2, using TIdHttp. It's not converting the UTC to DateTime but it works. Recaptcha-v3_DelphiXE2
  2. You can't put an maskedit inside a datetimepicker. Why do you need that? To put a mask?
  3. Here is my full configuration to work with Unigui and nginx under IIS. It's not completely how I would like to be but it's working. My unigui version is 1.0.0.1416 IIS 10 Windows Server 2019 Deploying with ISAPI mode (DLL File) Customized the uni and ext files so I copy them to my application folder. C:\webapp (folder) C:\webapp\web.config (created by IIS) C:\webapp\app (folder) C:\webapp\app\UniguiApplication.dll C:\webapp\app\files\ext (folder copied and customized from default installation) C:\webapp\app\files\uni (folder copied and customized from default installation) In ServerModule you must change ExtRoot = .\files\ext\ UniRoot = .\files\uni\ nginx.conf worker_processes 1; error_log logs/error.log warn; events { worker_connections 1024; }  http { proxy_connect_timeout 1800; proxy_send_timeout 1800; proxy_read_timeout 1800; send_timeout 1800; client_max_body_size 0; server { listen 80; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host; location /app { proxy_pass http://localhost:91; } } } In your IIS, you must add in Default Document the file to be loaded UniguiApplication.dll That's it. To test, just put your local ip /app to test. PS: What I'm trying yet to do is change proxy_pass to "http://localhost:91/;" With this slash in the end so the unigui application will look into "C:\webapp" and not in "C:\webapp\app" folder. But if you do this, the files of unigui will not be loaded.
  4. Are you under IIS? I was having the same problem and found that the error was in my nginx conf. worker_processes 1; error_log logs/error.log warn; events { worker_connections 1024; } http { proxy_connect_timeout 1800; proxy_send_timeout 1800; proxy_read_timeout 1800; send_timeout 1800; client_max_body_size 0; server { listen 80; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host; location /test { proxy_pass http://localhost:91; } } }
  5. Hi farshad. Is there a problem running unigui application under IIS with a reverse proxy? I'm searching exactly how to do it.
  6. naozuka

    Client username

    This is not a best practice since: 1) Your user may not be on Internet Explorer. 2) Your user may not be with ActiveX enabled. The best practice is to get the logged user on your application and save that as a log. BUT if you really want this way you need ajaxRequest. procedure TMainForm.UniFormCreate(Sender: TObject); begin UniSession.AddJS('var WinNetwork = new ActiveXObject("WScript.Network");'); UniSession.AddJS('ajaxRequest(MainForm.UniLabel1, ''WindowsUser'',[''username=''+WinNetwork.UserName]);'); end; procedure TMainForm.UniLabel1AjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings); begin if EventName='WindowsUser' then begin UniLabel1.Caption := 'UserName: ' + Params['username'].AsString; end; end;
  7. The example was not working for me. What I did. 1) Remove backslash before index.html. chartFrame.HTML.LoadFromFile(ExtractFilePath(Application.ExeName)+'\index.html'); 2) On ServerModule, move the strings below in CustomCSS to CustomFiles. /files/Chart.js /files/chartjs-plugin-zoom.min.js
  8. Hi there. You must use AjaxEvent for this but keep in mind that this validation is only on clientSide. The correct is to have the validation on server side too. On ClientEvents.UniEvents (beforeInit) of Edit component: function beforeInit(sender, config) { Ext.apply(sender,{allowBlank:false,vtype:'email'}); } On ClientEvents.ExtEvents (validitychange) of Edit component: function validitychange(sender, isValid, eOpts) { ajaxRequest(sender, 'Valida', ['isValid='+isValid] ); } OnAjaxEvent of Edit component: void __fastcall TUniForm1::edtEmailAjaxEvent(TComponent *Sender, UnicodeString EventName, TUniStrings *Params) { if (EventName == "Valida") { // this is a private variable EmailValido = (Params->Values["isValid"] == "true"); } } On ClientEvents.ExtEvents (click) of Button component: function click(sender, e, eOpts) { // this will validate all components in your form sender.uform.isValid(); } OnClick of Button component: void __fastcall TUniForm1::UniButton2Click(TObject *Sender) { if (EmailValido) { ShowMessage("Validação realizada com sucesso!"); } else { ShowMessage("Erro ao validar campos obrigatórios."); } } Best regards
  9. The solution that worked for me for runtime. Use AddJS for runtime. "ClientEvents.ExtEvents" for design time. UniSession.AddJS(UniButton1.JsName + '.addClass(''btn-cancel'')');
  10. Hi Farshad, I've found another solution using RAD Studio Command Prompt and the commands below. cd c:\Program Files (x86)\FMSoft\Framework\uniGUI\uSynEdit\Packages msbuild uSynEdit_R2012.dproj /p:Configuration=Release /p:DCC_CBuilderOutput=All msbuild uSynEdit_D2012.dproj /p:Configuration=Release /p:DCC_CBuilderOutput=All cd c:\Program Files (x86)\FMSoft\Framework\uniTools msbuild uniTools16.dproj /p:Configuration=Release /p:DCC_CBuilderOutput=All cd c:\Program Files (x86)\FMSoft\Framework\uniGUI\uIndy msbuild uIndy16.dproj /p:Configuration=Release /p:DCC_CBuilderOutput=All cd c:\Program Files (x86)\FMSoft\Framework\uniGUI\source\core msbuild uniGUI16Core.dproj /p:Configuration=Release /p:DCC_CBuilderOutput=All cd c:\Program Files (x86)\FMSoft\Framework\uniGUI\source\components msbuild uniGUI16.dproj /p:Configuration=Release /p:DCC_CBuilderOutput=All cd c:\Program Files (x86)\FMSoft\Framework\uniGUI\source\vcl msbuild uniGUI16VCL.dproj /p:Configuration=Release /p:DCC_CBuilderOutput=All cd c:\Program Files (x86)\FMSoft\Framework\uniGUI\source\design msbuild uniGUI16dcl.dproj /p:Configuration=Release /p:DCC_CBuilderOutput=All cd c:\Program Files (x86)\FMSoft\Framework\uniGUI\source\components msbuild uniGUI16Chart.dproj /p:Configuration=Release /p:DCC_CBuilderOutput=All cd c:\Program Files (x86)\FMSoft\Framework\uniGUI\source\design msbuild uniGUI16Chartdcl.dproj /p:Configuration=Release /p:DCC_CBuilderOutput=All Then I add the bpl manually with uniGUI16dcl and uniGUI16Chartdcl in Component -> Install Packages.
  11. I'll try with XE2 Trial then. So, there is no way with copying files? I thought the version file was in C:\Program Files.
  12. Hi Farshad, I tried copying folder hpp, dcp and bpl from "C:\Users\Public\Documents\RAD Studio\9.0" from my pc to the other with no delphi installation. But when I tried to install the bpl it gives me the message "Verification Failed". I don't know if I have to copy any file to "C:\Program Files (x86)\FMSoft". I'm using version 1.0.0.1416.
  13. Hi there. I'm with a problem here. I bought a license on my company and installed sucessfully on Rad Studio XE2 on my machine. Then I bought more three licenses but the machines doesn't have Rad Studio. Only C++ Builder XE2 (without Delphi). Is there a way to install without Delphi or using my machine that has Rad Studio XE2 installed? Best regards, Naozuka.
  14. The best solution On Form -> ClientEvents -> ExtEvents -> Add event window.afterrender: function window.afterrender(sender, eOpts) { Ext.get(sender.id).setStyle('display', 'none'); }
  15. Thank you Abaksoft. That is what I was afraid of. Maybe someone can help with some CSS to hide the form? I did one "McGyverism" but that was not elegant. On FormCreate: Self.Width := 1; Self.Height := 1; On ExtEvents: function window.afterrender(sender, eOpts) { Ext.get(sender.id).el.setStyle("padding", 0); Ext.get(sender.id).el.setStyle("border-width", 0); Ext.get(sender.id).el.setStyle("-webkit-border-radius", 0); Ext.get(sender.id).el.setStyle("-moz-border-radius", 0); Ext.get(sender.id).el.setStyle("border-radius", 0); Ext.get(sender.id).el.setStyle("height", 0); Ext.get(sender.id).el.setStyle("width", 0); }
  16. There is not datamodule only a MainForm and a FreeForm for testing.
  17. I'm having a problem but I don't know if it's common on Unigui. When I call Create of a form, it's showing it but I don't want to. It's a form that have my report component (QuickReport) and it's just a container form. I already tried without any components and the same result. procedure TMainForm.UniButton1Click(Sender: TObject); var form: TUniForm; begin form := TUniForm.Create(UniApplication); // It's creating and showing the form here. end;
  18. There's a method of TUniForm, TUniFrame ShowMask and HideMask. try Self.ShowMask('Loading data.'); { some process....} finally Self.HideMask; end;
  19. Try this: http://forums.unigui.com/index.php?/topic/7974-max-characters-in-memo/?hl=maxlength
×
×
  • Create New...