Jump to content

Abaksoft

uniGUI Subscriber
  • Posts

    1555
  • Joined

  • Last visited

  • Days Won

    86

Everything posted by Abaksoft

  1. Hello, You can try this : http://forums.unigui.com/index.php?/topic/18951-help-with-ssl-intranet/&do=findComment&comment=136067
  2. Hello Mossy, Format as soon as possible, your local development PC and re-install all (Delphi, Unigui, ...) It looks like a premeditated act of sabotage. a malicious person or a competitor could one day have brought you their flash disk containing a homemade program (virus) which only attacks your unigui applications (your plowing).
  3. Hello, Try this: http://forums.unigui.com/index.php?/topic/12063-access-validation-when-calling-unimainmodule-via-fdeventalerter onalert/&do=findComment&comment=64375
  4. Hello, Let see an example : 1. Assume, you have a grid where we can see all money operations for a person (100 lines) and at the last column its current balance. 2. Assume, you just commit an update on line 5 : update TOperations set amount = 777 where (IDOperation = 23000) At this point, the server will commit this without problem as the transaction is fast ! And you want to see, not only the refreshed record at line 5, but all records after, affected the current balance. 3. So, obviously you will say : Ok, i will Re-Open the Query and show the new balance colum. Humm....the problem is here ! 4. In web development, we have to think differently : assume you have a mini server, with low ressources and 500 opened sessions in real time. The 500 users are doing updates, with re-open (refreshing). Not tested, but obviouly, our mini server will make a face 🥶 5. Here is where comes "Client Calculation" : After updating line 5, we don'nt have to re-open the query (saturate the server), but work only on the grid locally, client side Ovoid technic .Edit .Post as it is server side. 6. Working on the grid locally, client side take advantage of javascript already integrated on known browsers as Chrome, Opera, FireFox, etc... 7. JavaScript on client side (Client Calculation) allows you to refresh the 95 lines in a flash time, without the need to re-call the server, nor even updating anything on sever. 8. I think FmSoft team is doing her best to release a next build with this feature. 😊
  5. I always tell myself: one step forward, taking a little time is better than two steps forward quickly and two steps back. God bless all Unigui Team.
  6. Hello, Good practices : Never change the engine and the chassis and the tires at the same time for an F1. Test one by one. We spent and lost many times in the past with this scenario (not with unigui) : with new Database engine, new acces DB, new Delphi, ... "Driver, go slowly, we are in a hurry"
  7. It seems that you are doing well your layout. Are you using client mobile layout ? You can try this: http://forums.unigui.com/index.php?/topic/15007-mobile-centering-text/
  8. Never use standard known web authentication. Http basic Authentication is a classical method wich concat [user + password ] in a base64 string crypt. In the futur, you will find someone who will crak this or bypass it with a simple js code passed in your html page. So, the solution is to create your own kitchen. https://learn.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/deprecation-of-basic-authentication-exchange-online
  9. Abaksoft

    Signature

    Sorry Fred, I did'nt see it. Very nice development ! For those who have bougth the Pack, It was in the PACK 04 / Project 20- uniGui Does Digital Signature (Mobile).
  10. Abaksoft

    Signature

    Hello, Here is a great component from our friend Marlon. https://store.falconsistemas.com.br/?filter=Signature
  11. Cool Are you using Pi5 ? "Raspberry Pi 5 delivers a ×2 to ×3 increase in CPU performance relative to Raspberry Pi 4. Alongside a substantial uplift in graphics performance from an 800MHz VideoCore VII GPU; dual 4Kp60 display output over HDMI;" https://www.raspberrypi.com/documentation/computers/raspberry-pi-5.html
  12. I did'nt use it. But sure Raspberry PI cames with many OS possibilities. linux Ubuntu, windows, etc... Logically, there should be no problem to use Unigui with Rasberry + ubuntu. The limit is the RAM and Warming up the box. https://www.raspberrypi.com/documentation/computers/getting-started.html
  13. available https://blogs.embarcadero.com/rad-studio-12-athens-patch-1-available/?utm_source=Eloqua&utm_medium=email&utm_content=Article-240208-Multicontent Personnaly, i have D12 but never install it. I am steel using D11.3 Why ? 1. Based on what i have read, the enhancement in D12 is for linux developers. 2. Some functionalities like refactoring code have been removed 3. Many instabilities So i am waiting ....
  14. 1. https://www.unigui.com/doc/online_help/index.html?hyperserver-server-farm.htm 2. No need for restart when using hyperserver. You can find all this on the precious online doc
  15. Why did'nt you use unigui Farm Servers load balancing and choose Nginx ?
  16. Hello Jocemora, In web development, you have to think differently : 1. You have to separate your business logic (code) from your design (forms). Instead of using functions located on forms, create an unit ( UniDataModule), where you will put all your common code. (Better use class objects inside this unit). 2. For showModal, see : https://www.unigui.com/doc/online_help/synch-and-asynch-operations.htm
  17. Maybe this can help : http://forums.unigui.com/index.php?/topic/13823-decimal-point-using-a-tablet-or-mobile-phone/&do=findComment&comment=74503
  18. Hello • For UniDBGrid ForceFit is enough. • For UnimDBGrid this can help: http://forums.unigui.com/index.php?/topic/14802-tunimdbgrid-auto-size-column-to-available-space/&do=findComment&comment=93100 http://forums.unigui.com/index.php?/topic/14472-resize-column-of-tunimdblistgrid/&do=findComment&comment=82017
  19. KeyWords : 1. Use ClientSide design 2. Clean Browser Cache
  20. Yes You can fellow these steps: http://forums.unigui.com/index.php?/topic/5745-nginx-any-feedback/&do=findComment&comment=83619 But i I never went further.
  21. Thank you Harry This is what should post every unigui developer. Your expertise is precious
  22. Interesting ! I am tchatting with ChatGpt 3.5 Q: Thank you. Is AjaxRequest client side in unigui ? A: I apologize for any confusion in my previous responses. I made an error in my explanation. The AjaxRequest function in UniGUI is indeed server-side and is used for making asynchronous requests to the server. To perform calculations on the client side in UniGUI, you can use UniSession.AddJS to execute JavaScript code directly on the client. I appreciate your understanding, and I'm here to assist with any further questions or adjustments you may need. Q: So, what benefits to use UniSession.AddJS instead of pascal code ? A: Using UniSession.AddJS to execute JavaScript code on the client side in UniGUI provides several benefits: Client-Side Interactivity: It allows you to enhance the interactivity of your UniGUI applications by directly manipulating the client-side (browser) behavior. This is useful for tasks that are more efficiently handled on the client side without requiring a round-trip to the server. Reduced Server Load: Client-side operations with JavaScript don't involve server round-trips, reducing the load on the server. This is beneficial for tasks that can be handled locally by the browser without the need for server-side processing. Dynamic Updates: You can dynamically update the client-side user interface in response to user actions without refreshing the entire page. This leads to a smoother and more responsive user experience. Asynchronous Processing: JavaScript code executed via UniSession.AddJS is asynchronous, allowing you to perform actions on the client side while other server-side operations may be ongoing. This can improve the overall responsiveness of your application. Access to Browser Features: JavaScript provides direct access to browser features and APIs, enabling you to utilize a wide range of client-side functionalities that may not be easily achievable with Pascal code alone. However, it's essential to strike a balance and use client-side code judiciously. Certain tasks are better suited for execution on the server side, especially when involving sensitive data or complex server interactions. Always consider the security implications and user experience when deciding whether to use client-side or server-side logic. You Great ! ChatGPT ChatGPT I'm glad you found the information helpful! If you have any more questions, whether they're related to UniGUI, web development, or any other topic, feel free to ask. Happy coding! ChatGPT can make mistakes. Consider checking important information.
  23. I asked: Great. How to translate this on unigui framework ? Answer: To achieve a similar functionality in UniGUI, you need to adapt the JavaScript logic within the context of a UniGUI application. UniGUI is a framework for developing web applications using Delphi Object Pascal. Here's an example of how you might translate the logic using UniGUI: Assuming you have three UniEdit components named UniEditA, UniEditB, and UniEditC on your UniGUI form: If you want to perform the calculation on the client side without involving server communication, you can use JavaScript directly in UniGUI. UniGUI allows you to execute JavaScript code from the server side. Assuming you have three UniEdit components named UniEditA, UniEditB, and UniEditC, you can attach the following event handlers to their client-side events: unit MainForm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uniGUIForm, uniGUIClasses, uniBasicGrid, uniDBGrid, uniButton, uniBitBtn, uniSpeedButton, uniGUIBaseClasses, uniPanel, uniLabel, uniEdit, uniGUIFrame, uniFrame; type TMainForm = class(TUniForm) UniLabelA: TUniLabel; UniLabelB: TUniLabel; UniLabelC: TUniLabel; UniEditA: TUniEdit; UniEditB: TUniEdit; UniEditC: TUniEdit; UniButtonCalculate: TUniButton; UniFrameController: TUniFrameController; procedure UniFormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var MainForm: TMainForm; implementation {$R *.dfm} procedure TMainForm.UniFormCreate(Sender: TObject); var Script: string; begin // Attach the client-side events Script := 'function calculateFields() {' + ' var valueA = parseFloat(document.getElementById("' + UniEditA.JSName + '").value) || 0;' + ' var valueB = parseFloat(document.getElementById("' + UniEditB.JSName + '").value) || 0;' + ' var result = valueA + valueB;' + ' document.getElementById("' + UniEditC.JSName + '").value = result;' + '}' + 'document.getElementById("' + UniButtonCalculate.JSName + '").addEventListener("click", calculateFields);'; UniFrameController.ExecuteJSCode(Script); end; initialization RegisterAppFormClass(TMainForm); end. This code uses the UniFrameController component to execute JavaScript code on the client side. It attaches a client-side event to the button click, which performs the calculation in JavaScript without communicating with the server. Adjust the code based on your specific needs and UI structure in UniGUI. ________ All this is from ChatGpt
  24. Good morning Stemon, ChatGpt is your best friend. I asked : Hellow, Ho to calculate with javascript on client side, the Field C = Field A + Field B. Let say Field A and Field B are edit text on the browser ? Thx Answer : Hello! In JavaScript, you can perform calculations on the client side by accessing the values of the input fields, performing the addition, and then updating the value of the result field. Here's a simple example assuming you have two input fields (Field A and Field and you want to display the result in another input field (Field C): <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Calculate Fields</title> </head> <body> <label for="fieldA">Field A:</label> <input type="text" id="fieldA" /> <label for="fieldB">Field B:</label> <input type="text" id="fieldB" /> <label for="fieldC">Field C (Result):</label> <input type="text" id="fieldC" readonly /> <script> // Get references to the input fields var fieldA = document.getElementById('fieldA'); var fieldB = document.getElementById('fieldB'); var fieldC = document.getElementById('fieldC'); // Add event listeners to trigger the calculation when the input changes fieldA.addEventListener('input', calculate); fieldB.addEventListener('input', calculate); function calculate() { // Get values from input fields and convert them to numbers var valueA = parseFloat(fieldA.value) || 0; var valueB = parseFloat(fieldB.value) || 0; // Perform the calculation var result = valueA + valueB; // Update the result field fieldC.value = result; } </script> </body> </html> This example uses basic HTML and JavaScript to achieve the desired calculation on the client side. The calculate function is triggered whenever the input in Field A or Field B changes, and it updates the result in Field C accordingly. __________ I am not in my office to test it. But i am sur, you can do something with these elements.
×
×
  • Create New...