Jump to content

MVakili

uniGUI Subscriber
  • Posts

    161
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by MVakili

  1. MVakili

    Ping time

    And finaly for this you can use this function + Unitimer function TDMT.Ping2(const AHost: string): Integer; var ICMP: TIdICMPClient; Started: Tdatetime; begin Result:=-1; Started := Now; ICMP := TIdICMPClient.Create(nil); try ICMP.Host := AHost; ICMP.ReceiveTimeout := 2000; ICMP.Ping(); If (ICMP.ReplyStatus.ReplyStatusType = rsEcho) Then Result:=MilliSecondsBetween(TDateTime.Now, Started); finally ICMP.Free; end; end; in timer procedure TMainForm.UniTimer1Timer(Sender: TObject); Var T : Integer; begin T:=Ping2('1.1.1.1'); if T>=0 then LPing.Caption:=T.ToString+ ' ms' Else LPing.Caption:= ' Error'; end; and for program server as @Sherzod guide me we can use this code Function UniServer(Var RetParams : Tstringlist):Integer; begin With RetParams Do Begin Add('Memory Used:'+UniServerModule.ServerResources.MemoryUsed.ToString+'/'+UniServerModule.ServerResources.PeakMemoryUsed.ToString); Add('Process Memory Used:'+UniServerModule.ServerResources.ProcessMemoryUsed.ToString+'/'+UniServerModule.ServerResources.PeakProcessMemoryUsed.ToString); Add('USER Objects:'+UniServerModule.ServerResources.USERObjects.ToString+'/'+UniServerModule.ServerResources.PeakUSERObjects.ToString); Add('GDI Objects:'+UniServerModule.ServerResources.GDIObjects.ToString+'/'+UniServerModule.ServerResources.PeakGDIObjects.ToString); Add('CPU Usage:'+FloatToStr(UniServerModule.ServerResources.CPUUsage)+'/'+FloatToStr(UniServerModule.ServerResources.PeakCPUUsage)); Add('Handles:'+UniServerModule.ServerResources.Handles.ToString+'/'+UniServerModule.ServerResources.PeakHandles.ToString); End; end;
  2. MVakili

    Ping time

    In fact, I want to display the client's connection speed to the software (which is hosted on the server). After that, I need to know the speed of the software's connection to the data server (which can be located in different places in our designs). And finally, I need to know the status of the server for processing tasks (whether it is involved in heavy processing or not).
  3. MVakili

    Ping time

    I think this code is useful for checking ping time to a server Function Ping(const Host: string; Port: Integer):Integer; var Started: Tdatetime; Http: TIdHTTP; begin Started := Now; Http := TIdHTTP.Create(nil); try try Http.Get('http://' + Host + ':' + IntToStr(Port)); Result:=MilliSecondsBetween(TDateTime.Now, Started); except // this is expected end; finally Http.Free; end; end; if IsConnected then Caption:='Connected'+IntToStr(Ping('Server',any port)) Else Caption:='Not Connected'
  4. MVakili

    Ping time

    Yes, that's correct. In fact, the problem consists of several parts: 1. Is there a connection to the server? 2. What is the speed of the connection to the server? 3. What is the speed of the connection between the program and the database? 4. What is the CPU processing power? And similar questions. The goal is actually to be able to check the required aspects on the client side and make the user aware of potential bottlenecks in the operations.
  5. MVakili

    Ping time

    Thank you for your quick reply But I don't know how to use these codes in UniGui We used to use this method to connect to the Internet function YourFunctionName : boolean; var origin : cardinal; begin result := InternetGetConnectedState(@origin,0); //connections origins by origin value //NO INTERNET CONNECTION = 0; //INTERNET_CONNECTION_MODEM = 1; //INTERNET_CONNECTION_LAN = 2; //INTERNET_CONNECTION_PROXY = 4; //INTERNET_CONNECTION_MODEM_BUSY = 8; end;
  6. MVakili

    Ping time

    I want to display the internet connection and Ping speed similar to what we see in the image at the top of the program to the user. Has anyone had any experience in this field?
  7. I apologize for the delayed response. Yes, you are right. I wasn't paying attention to the forms when I was copying. Anyway, it wasn't a big deal. There was only one form with a popup on it. The most important part was the definition that @Sherzod had provided, which can also be seen in the program's text. type TXPopupMenu = class(TUniPopupMenu) end; and for using css TXPopupMenu(UniPopupMenu1).MenuControl.JSInterface.JSCall('addCls', ['uni-popup']); and my css for popup .x-title.x-menu-header-title { height: 25px; text-align: center; font-weight: bold; background-image: linear-gradient(#dae7f6, #cddef3 45%, #abc7ec 46%, #abc7ec 50%, #b8cfee 51%, #cbddf3); } .uni-popup { position: absolute; display: none; background-color: #f1f1f1; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } .uni-popup a { color: black; padding: 12px 16px; text-decoration: none; display: block; } .uni-popup a:hover { background-color: #ddd; } .uni-popup.show { display: block; } .dropdown-content { display: none; position: absolute; background-color: #f1f1f1; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); padding: 12px 16px; z-index: 1; } .dropdown:hover .dropdown-content { display: block; } And finally you can download full project Sample XPop.rar
  8. This message is constantly displayed on the TUniDBGrid and is annoying. How can I remove it or change its text?
  9. thank you Your solution worked one more question When I activate the row number, it starts from 1 on each page Is there a way to make it persistent instead of resetting every time?
  10. Thank you No more errors But he didn't do anything! In fact, I need to know how many records I have out of all the records in the dataset (RecNo/RecordCount) And I don't know how to get it Is it possible to modify the code?
  11. With TUniDBGrid(Components[CI]) do Begin if Columns.Count>1 then OnAfterLoad:=UniDBGridAfterLoad; JSInterface.JSCall('addCls', ['Grid1css']); ClientEvents.UniEvents.Values['beforeInit']:= 'function beforeInit(sender, config)config.displayInfo=true;}'; End It Says "Unexpected identifier 'config'" Where is my mistake?
  12. I think it works because 1- It downloads all required Java programs and puts them in a pack at the discretion of the programmer 2- Creates a Jason for settings and charts What I don't understand is how to connect this Jason to the SQL tables
  13. Thank you for sharing. Can these charts be used offline as well?
  14. Convert image to HTML CSS (free) https://fronty.com/ AI-Powered tool to create a website in few minutes.
  15. Yes, I have read this text that it is not possible to work offline due to Google rules But nowhere in the source, I found no reference to any site or CDN
  16. one question Can these components be used offline or does it require an internet connection?
  17. @Marlon Nardi Thank you for your explanation For security reasons, we have to use servers that are completely isolated and do not have any access to the Internet, and all files must be located on the server itself. When we talk here: 1- Other friends who may have the same problem will also find the solution 2- They also notice how responsive you are
  18. I cant Change CDN and my program stop with error try{eval("uniSyncObj.xEncode(0x06377E28);")}catch(e){alert(e.message)};O132.originalValue=undefined;_sfv_(O132,0,"94"); const {$IFDEF CDN_FALCON} CDN = 'files/falcon/'; // CDN = 'https://cdn.falconsistemas.com.br/'; CDNENABLED = True; {$ELSE} CDN = ''; CDNENABLED = False; {$ENDIF} implementation initialization if StrToFloat(Copy(StringReplace(UNI_CURRENT_EXTJS_VERSION,'.','',[rfReplaceAll]),0,3)) < 700 then UniAddCSSLibrary('https://use.fontawesome.com/releases/v5.15.4/css/all.css', True, [upoFolderUni, upoPlatformBoth]); end.
×
×
  • Create New...