VistA-cprs/CPRS-Chart/fxBroker.pas

130 lines
3.2 KiB
Plaintext

unit fxBroker;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, DateUtils, ORNet, ORFn, rMisc, ComCtrls, Buttons, ExtCtrls,
ORCtrls, ORSystem, fBase508Form, VA508AccessibilityManager;
type
TfrmBroker = class(TfrmBase508Form)
pnlTop: TORAutoPanel;
lblMaxCalls: TLabel;
txtMaxCalls: TCaptionEdit;
cmdPrev: TBitBtn;
cmdNext: TBitBtn;
udMax: TUpDown;
memData: TRichEdit;
lblCallID: TStaticText;
btnRLT: TButton;
procedure cmdPrevClick(Sender: TObject);
procedure cmdNextClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormResize(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure btnRLTClick(Sender: TObject);
private
{ Private declarations }
FRetained: Integer;
FCurrent: Integer;
public
{ Public declarations }
end;
procedure ShowBroker;
implementation
{$R *.DFM}
procedure ShowBroker;
var
frmBroker: TfrmBroker;
begin
frmBroker := TfrmBroker.Create(Application);
try
ResizeAnchoredFormToFont(frmBroker);
with frmBroker do
begin
FRetained := RetainedRPCCount - 1;
FCurrent := FRetained;
LoadRPCData(memData.Lines, FCurrent);
memData.SelStart := 0;
lblCallID.Caption := 'Last Call Minus: ' + IntToStr(FRetained - FCurrent);
ShowModal;
end;
finally
frmBroker.Release;
end;
end;
procedure TfrmBroker.cmdPrevClick(Sender: TObject);
begin
FCurrent := HigherOf(FCurrent - 1, 0);
LoadRPCData(memData.Lines, FCurrent);
memData.SelStart := 0;
lblCallID.Caption := 'Last Call Minus: ' + IntToStr(FRetained - FCurrent);
end;
procedure TfrmBroker.cmdNextClick(Sender: TObject);
begin
FCurrent := LowerOf(FCurrent + 1, FRetained);
LoadRPCData(memData.Lines, FCurrent);
memData.SelStart := 0;
lblCallID.Caption := 'Last Call Minus: ' + IntToStr(FRetained - FCurrent);
end;
procedure TfrmBroker.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SetRetainedRPCMax(StrToIntDef(txtMaxCalls.Text, 5))
end;
procedure TfrmBroker.FormResize(Sender: TObject);
begin
Refresh;
end;
procedure TfrmBroker.FormCreate(Sender: TObject);
begin
udMax.Position := GetRPCMax;
end;
procedure TfrmBroker.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_ESCAPE then
begin
Key := 0;
Close;
end;
end;
procedure TfrmBroker.btnRLTClick(Sender: TObject);
var
startTime, endTime: tDateTime;
clientVer, serverVer, diffDisplay: string;
theDiff: integer;
const
TX_OPTION = 'OR CPRS GUI CHART';
disclaimer = 'NOTE: Strictly relative indicator:';
begin
clientVer := clientVersion(Application.ExeName); // Obtain before starting.
// Check time lapse between a standard RPC call:
startTime := now;
serverVer := serverVersion(TX_OPTION, clientVer);
endTime := now;
theDiff := milliSecondsBetween(endTime, startTime);
diffDisplay := intToStr(theDiff);
// Show the results:
infoBox('Lapsed time (milliseconds) = ' + diffDisplay + '.', disclaimer, MB_OK);
end;
end.