Tutorial Source Code
unit tut1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Trpcb, RPCConf1, StdCtrls, MFunStr;
type
TForm1 = class(TForm)
RPCBroker1: TRPCBroker;
ListBox1: TListBox;
Button1: TButton;
Name: TEdit;
RightMargin: TEdit;
FormFeed: TEdit;
OpenExecute: TEdit;
CloseExecute: TEdit;
PageLength: TEdit;
BackSpace: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
TermTypeList: TStrings; // Added declaration of TermTypeList
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var ServerStr: String;
PortStr: String;
begin
TermTypeList:=TStringList.Create;
// get the correct port and server from Registry
if GetServerInfo(ServerStr,PortStr)<> mrCancel then
begin {connectOK}
RPCBroker1.Server:=ServerStr;
RPCBroker1.ListenerPort:=StrToInt(PortStr);
// establish a connection to the RPC Broker server
try
RPCBroker1.Connected:=True;
if not RPCBroker1.CreateContext('ZxxxTT TERMTYPE') then
Application.Terminate;
except
On EBrokerError do
begin {error}
ShowMessage('Connection to server could not be established!');
Application.Terminate;
end; {error}
end; {try}
end {connectOK}
else
Application.Terminate;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
RPCBroker1.RemoteProcedure:='ZxxxTT LIST';
try
begin {call}
RPCBroker1.Call;
for i:=0 to (RPCBroker1.Results.Count-1) do begin {copy}
ListBox1.Items.Add(piece(RPCBroker1.Results[i],'^',2));
TermTypeList.Add(RPCBroker1.Results[i]); //added line
end; {copy}
end; {call}
except
On EBrokerError do
ShowMessage('A problem was encountered communicating with the server.');
end; {try}
end;
procedure TForm1.ListBox1Click(Sender: TObject);
var
ien: String;
begin
if (ListBox1.ItemIndex <> -1) then
begin {displayitem}
ien:=piece(TermTypeList[ListBox1.ItemIndex],'^',1);
RPCBroker1.RemoteProcedure:='ZxxxTT RETRIEVE';
RPCBroker1.Param[0].Value := ien;
RPCBroker1.Param[0].PType := literal;
try
begin {call code}
RPCBroker1.Call;
Name.Text:=piece(RPCBroker1.Results[0],'^',1);
RightMargin.Text:=piece(RPCBroker1.Results[0],'^',2);
FormFeed.Text:=piece(RPCBroker1.Results[0],'^',3);
PageLength.Text:=piece(RPCBroker1.Results[0],'^',4);
BackSpace.Text:=piece(RPCBroker1.Results[0],'^',5);
OpenExecute.Text:=RPCBroker1.Results[1];
CloseExecute.Text:=RPCBroker1.Results[2];
end; {call code}
except
On EBrokerError do
ShowMessage('A problem was encountered communicating with the server.');
end; {try}
end; {displayitem}
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
TermTypeList.Free;
end;
end.