RPC HELP Tutorial Tutorial Source Code
From VistApedia
Tutorial Source Code
unit tut1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Trpcb, RPCConf1, StdCtrls, MFunStr; type TForm1 = class(TForm) brkrRPCBroker1: 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} // Added declaration of TermTypeList. TermTypeList: TStrings; 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 the Registry. if GetServerInfo(ServerStr,PortStr)<> mrCancel then begin {connectOK begin} brkrRPCBroker1.Server:=ServerStr; brkrRPCBroker1.ListenerPort:=StrToInt(PortStr); // Establish a connection to the RPC Broker server. try brkrRPCBroker1.Connected:=True; if not brkrRPCBroker1.CreateContext('ZxxxTT TERMTYPE') then Application.Terminate; except on EBrokerError do begin {error begin} ShowMessage('Connection to server could not be established!'); Application.Terminate; end; {error end} end; {try end} end else {connectOK end} Application.Terminate; end; procedure TForm1.Button1Click(Sender: TObject); var i: integer; begin brkrRPCBroker1.RemoteProcedure:='ZxxxTT LIST'; try begin {call begin} brkrRPCBroker1.Call; for i:=0 to (brkrRPCBroker1.Results.Count-1) do begin {copy begin} ListBox1.Items.Add(piece(brkrRPCBroker1.Results[i],'^',2)); // Added line. TermTypeList.Add(brkrRPCBroker1.Results[i]); end; {copy end} end; {call end} except on EBrokerError do begin ShowMessage('A problem was encountered communicating with the server.'); end; {try end} end; procedure TForm1.ListBox1Click(Sender: TObject); var ien: String; begin if (ListBox1.ItemIndex <> -1) then begin {displayitem begin} ien:=piece(TermTypeList[ListBox1.ItemIndex],'^',1); brkrRPCBroker1.RemoteProcedure:='ZxxxTT RETRIEVE'; brkrRPCBroker1.Param[0].Value := ien; brkrRPCBroker1.Param[0].PType := literal; try begin {call code begin} brkrRPCBroker1.Call; Name.Text:=piece(brkrRPCBroker1.Results[0],'^',1); RightMargin.Text:=piece(brkrRPCBroker1.Results[0],'^',2); FormFeed.Text:=piece(brkrRPCBroker1.Results[0],'^',3); PageLength.Text:=piece(brkrRPCBroker1.Results[0],'^',4); BackSpace.Text:=piece(brkrRPCBroker1.Results[0],'^',5); OpenExecute.Text:=brkrRPCBroker1.Results[1]; CloseExecute.Text:=brkrRPCBroker1.Results[2]; end; {call code end} except on EBrokerError do ShowMessage('A problem was encountered communicating with the server.'); end; {try end} end; {displayitem end} end; procedure TForm1.FormDestroy(Sender: TObject); begin TermTypeList.Free; end; end.