unit NamedPipeClientMain; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, uROClient, uROClientIntf, uRORemoteService, uROBinMessage, uRONamedPipeChannel, NamedPipeLibrary_Intf; type TNamedPipeClientMainForm = class(TForm) ROMessage: TROBinMessage; ROChannel: TRONamedPipeChannel; RONamedPipeServer: TRORemoteService; GetPathButton: TButton; Memo: TMemo; UpTimeButton: TButton; GetConnectedUsersCountButton: TButton; procedure GetPathButtonClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure UpTimeButtonClick(Sender: TObject); procedure GetConnectedUsersCountButtonClick(Sender: TObject); private { Private declarations } FService: INamedPipeService; public { Public declarations } end; var NamedPipeClientMainForm: TNamedPipeClientMainForm; implementation {$R *.dfm} procedure TNamedPipeClientMainForm.GetPathButtonClick(Sender: TObject); begin Memo.Lines.text := StringReplace(FService.getPath, ';', sLineBreak, [rfReplaceAll]); end; procedure TNamedPipeClientMainForm.FormCreate(Sender: TObject); begin FService := RONamedPipeServer as INamedPipeService; end; procedure TNamedPipeClientMainForm.UpTimeButtonClick(Sender: TObject); var uptime: TDateTime; d, h, m, s, ms: word; begin uptime := FService.UpTime; d := Trunc(UpTime); DecodeTime(uptime, h, m, s, ms); Memo.Lines.text := Format('Server uptime is %d day %d hour %d min %d sec', [d, h, m, s]); end; procedure TNamedPipeClientMainForm.GetConnectedUsersCountButtonClick( Sender: TObject); begin Memo.Lines.text := 'Connected users on server is ' + IntToStr(FService.GetConnectedUsersCount); end; end.