📄 udelphiclient.pas
字号:
unit uDelphiClient;
interface
uses
Windows, Messages, SysUtils, CorbInit, CorbaObj, orbpas, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
ISimpleText = interface
['{49F25940-3C3C-11D3-9703-0000861F6726}']
function SetText(const txt: String): String;
end;
TSimpleTextStub = class(TCorbaStub, ISimpleText)
public
function SetText(const txt: String): String;
end;
TForm1 = class(TForm)
edtDelphiText: TEdit;
btnDelphiTextLate: TButton;
btnDelphiTextEarlyClick: TButton;
edtResult: TEdit;
procedure btnDelphiTextLateClick(Sender: TObject);
procedure btnDelphiTextEarlyClickClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.btnDelphiTextLateClick(Sender: TObject);
var
JavaServer: TAny;
begin
JavaServer := ORB.Bind('IDL:CorbaServer/SimpleText:1.0');
edtResult.Text := JavaServer.setText(edtDelphiText.text);
end;
{ TSimpleTextStub }
function TSimpleTextStub.SetText(const txt: String): String;
var
InBuf: IMarshalInBuffer;
OutBuf: IMarshalOutBuffer;
begin
FStub.CreateRequest('setText',True,OutBuf);
OutBuf.PutText(pchar(txt));
FStub.Invoke(OutBuf, InBuf);
Result := UnmarshalText(InBuf);
end;
procedure TForm1.btnDelphiTextEarlyClickClick(Sender: TObject);
var
JavaServer: ISimpleText;
begin
JavaServer := CorbaBind(ISimpleText) as ISimpleText;
edtResult.Text := JavaServer.SetText(edtDelphiText.text);
end;
initialization
CorbaStubManager.RegisterStub(ISimpleText, TSimpleTextStub);
CorbaInterfaceIDManager.RegisterInterface(ISimpleText, 'IDL:CorbaServer/SimpleText:1.0');
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -