- Recompilación en Delphi10 de todos los paquetes de RO para generar las DCU's en Lib\D10 git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@7 b6239004-a887-0f4b-9937-50029ccdca16
385 lines
11 KiB
ObjectPascal
385 lines
11 KiB
ObjectPascal
unit xMethodsMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
ComCtrls, StdCtrls, ExtCtrls, Spin,
|
|
uROClient, uROSOAPMessage, uROXMLSerializer,
|
|
uROPoweredByRemObjectsButton,
|
|
uROWinInetHttpChannel;
|
|
|
|
type
|
|
TBabelOption = record
|
|
ShowLabel,
|
|
Code: string;
|
|
end;
|
|
|
|
const
|
|
BabelOptions: array[0..9] of TBabelOption = (
|
|
(ShowLabel: 'English -> French'; Code: 'en_fr'),
|
|
(ShowLabel: 'English -> German'; Code: 'en_de'),
|
|
(ShowLabel: 'English -> Italian'; Code: 'en_it'),
|
|
(ShowLabel: 'English -> Portugese'; Code: 'en_pt'),
|
|
(ShowLabel: 'English -> Spanish'; Code: 'en_es'),
|
|
(ShowLabel: 'French -> English'; Code: 'fr_en'),
|
|
(ShowLabel: 'German -> English'; Code: 'de_en'),
|
|
(ShowLabel: 'Italian -> English'; Code: 'it_en'),
|
|
(ShowLabel: 'Portugese -> English'; Code: 'pt_en'),
|
|
(ShowLabel: 'Spanish -> English'; Code: 'es_en'));
|
|
|
|
type
|
|
TxMethodsMainForm = class(TForm)
|
|
SOAPMessage: TROSOAPMessage;
|
|
Panel1: TPanel;
|
|
pc_Pages: TPageControl;
|
|
ts_Home: TTabSheet;
|
|
RoPoweredByRemObjectsButton1: TRoPoweredByRemObjectsButton;
|
|
ScrollBox1: TScrollBox;
|
|
Label34: TLabel;
|
|
Label33: TLabel;
|
|
Label32: TLabel;
|
|
Label35: TLabel;
|
|
Label36: TLabel;
|
|
Label37: TLabel;
|
|
Label38: TLabel;
|
|
tsQueryService: TTabSheet;
|
|
Label4: TLabel;
|
|
Label22: TLabel;
|
|
Label23: TLabel;
|
|
eQueryService: TEdit;
|
|
QueryServiceMemo: TMemo;
|
|
GetAllServiceNamesButton: TButton;
|
|
GetServiceSummariesByPublisherButton: TButton;
|
|
ePublisher: TEdit;
|
|
GetServiceDetailButton: TButton;
|
|
eServiceID: TEdit;
|
|
tsFedexTracker: TTabSheet;
|
|
Label6: TLabel;
|
|
Label20: TLabel;
|
|
Label21: TLabel;
|
|
eFedex: TEdit;
|
|
FedexMemo: TMemo;
|
|
eTrackingID: TEdit;
|
|
GetTrackingStatusButton: TButton;
|
|
tsEbay: TTabSheet;
|
|
Label7: TLabel;
|
|
eeBay: TEdit;
|
|
GetCurrentPriceButton: TButton;
|
|
eAuctionValue: TEdit;
|
|
ts_DomainChecker: TTabSheet;
|
|
Label8: TLabel;
|
|
Label15: TLabel;
|
|
eDomainChecker: TEdit;
|
|
eDomain: TEdit;
|
|
CheckDomainButton: TButton;
|
|
tsExchange: TTabSheet;
|
|
Label9: TLabel;
|
|
eExchange: TEdit;
|
|
cbFrom: TComboBox;
|
|
cbTo: TComboBox;
|
|
GetRateButton: TButton;
|
|
tsTraffic: TTabSheet;
|
|
Label10: TLabel;
|
|
eTraffic: TEdit;
|
|
TrafficMemo: TMemo;
|
|
eHighway: TEdit;
|
|
GetTrafficButton: TButton;
|
|
tsBarnsAndNoblePrice: TTabSheet;
|
|
Label11: TLabel;
|
|
eBarns: TEdit;
|
|
eISBN: TEdit;
|
|
GetPriceButton: TButton;
|
|
ePrice: TEdit;
|
|
tsBabelFish: TTabSheet;
|
|
Label1: TLabel;
|
|
TranslateButton: TButton;
|
|
eInput: TEdit;
|
|
eOutput: TEdit;
|
|
rbBabelTransMode: TRadioGroup;
|
|
eBabelFish: TEdit;
|
|
Label31: TLabel;
|
|
Label39: TLabel;
|
|
Label40: TLabel;
|
|
eDomainAvailability: TEdit;
|
|
Label41: TLabel;
|
|
HttpChannel: TROWinInetHTTPChannel;
|
|
Label14: TLabel;
|
|
Label42: TLabel;
|
|
Label16: TLabel;
|
|
eAuctionID: TEdit;
|
|
Label17: TLabel;
|
|
Bevel2: TBevel;
|
|
Label43: TLabel;
|
|
Label44: TLabel;
|
|
Bevel3: TBevel;
|
|
Label45: TLabel;
|
|
Label46: TLabel;
|
|
Label47: TLabel;
|
|
Label48: TLabel;
|
|
Label49: TLabel;
|
|
Label2: TLabel;
|
|
Label3: TLabel;
|
|
Label50: TLabel;
|
|
Label51: TLabel;
|
|
Label52: TLabel;
|
|
Label53: TLabel;
|
|
Label54: TLabel;
|
|
Label55: TLabel;
|
|
Label56: TLabel;
|
|
Label57: TLabel;
|
|
Label58: TLabel;
|
|
Label59: TLabel;
|
|
Label61: TLabel;
|
|
Label13: TLabel;
|
|
Label30: TLabel;
|
|
Label18: TLabel;
|
|
Label19: TLabel;
|
|
Label60: TLabel;
|
|
Label62: TLabel;
|
|
Label64: TLabel;
|
|
Label65: TLabel;
|
|
Label66: TLabel;
|
|
Label67: TLabel;
|
|
Label69: TLabel;
|
|
Bevel1: TBevel;
|
|
Bevel7: TBevel;
|
|
Bevel6: TBevel;
|
|
Bevel8: TBevel;
|
|
Bevel4: TBevel;
|
|
eRate: TMemo;
|
|
procedure TranslateButtonClick(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure eBabelFishDblClick(Sender: TObject);
|
|
procedure GetPriceButtonClick(Sender: TObject);
|
|
procedure GetRateButtonClick(Sender: TObject);
|
|
procedure CheckDomainButtonClick(Sender: TObject);
|
|
procedure GetCurrentPriceButtonClick(Sender: TObject);
|
|
procedure GetTrafficButtonClick(Sender: TObject);
|
|
procedure GetTrackingStatusButtonClick(Sender: TObject);
|
|
procedure GetAllServiceNamesButtonClick(Sender: TObject);
|
|
procedure Label38Click(Sender: TObject);
|
|
private
|
|
procedure SetProxy;
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
xMethodsMainForm: TxMethodsMainForm;
|
|
|
|
implementation
|
|
|
|
uses
|
|
BabelFish_Intf, BarnsAndNoblePrice_Intf, CurrencyExchange_Intf, DomainChecker_Intf,
|
|
eBayPriceWatcher_Intf, FedExTracker_Intf, CaliforniaTrafic_Intf, xMethodsQueryService_Intf,
|
|
ShellAPI;
|
|
{$R *.DFM}
|
|
|
|
procedure TxMethodsMainForm.FormCreate(Sender: TObject);
|
|
var
|
|
i: integer;
|
|
begin
|
|
pc_Pages.ActivePageIndex := 0;
|
|
|
|
for i := 0 to High(BabelOptions) do
|
|
rbBabelTransMode.Items.Add(BabelOptions[i].ShowLabel);
|
|
|
|
rbBabelTransMode.ItemIndex := 0;
|
|
cbFrom.ItemIndex := 151;
|
|
cbTo.ItemIndex := 49;
|
|
end;
|
|
|
|
procedure TxMethodsMainForm.SetProxy;
|
|
begin
|
|
{ Important!
|
|
Since we are using the same component for all web services we want to make the TargetURL default
|
|
to the one in the original WSDL. This property is set before each request (see xxx_Intf.pas units.
|
|
By erasing the value we ensure the right EndpointURI is used. }
|
|
|
|
HttpChannel.TargetURL := '';
|
|
|
|
{if CheckBox1.Checked then begin
|
|
HttpChannel.IndyClient.Request.ProxyServer := Edit3.Text;
|
|
HttpChannel.IndyClient.Request.ProxyPort := SpinEdit1.Value;
|
|
end
|
|
else begin
|
|
HttpChannel.IndyClient.Request.ProxyServer := '';
|
|
HttpChannel.IndyClient.Request.ProxyPort := 0;
|
|
end;}
|
|
end;
|
|
|
|
procedure TxMethodsMainForm.eBabelFishDblClick(Sender: TObject);
|
|
begin
|
|
ShellExecute(0, 'open', PChar(TEdit(Sender).Text), nil, nil, SW_NORMAL);
|
|
end;
|
|
|
|
procedure TxMethodsMainForm.TranslateButtonClick(Sender: TObject);
|
|
var
|
|
svc: IBabelFishService;
|
|
begin
|
|
Screen.Cursor := crHourGlass;
|
|
try
|
|
SetProxy;
|
|
eOutput.Text := '';
|
|
eOutput.Repaint();
|
|
svc := CoBabelFishService.Create(SOAPMessage, HttpChannel);
|
|
eOutput.Text := svc.BabelFish(BabelOptions[rbBabelTransMode.ItemIndex].Code, eInput.Text);
|
|
finally
|
|
Screen.Cursor := crDefault;
|
|
end;
|
|
end;
|
|
|
|
procedure TxMethodsMainForm.GetPriceButtonClick(Sender: TObject);
|
|
var
|
|
svc: IBNQuoteService;
|
|
begin
|
|
Screen.Cursor := crHourGlass;
|
|
try
|
|
SetProxy;
|
|
ePrice.Text := '';
|
|
ePrice.Repaint();
|
|
svc := CoBNQuoteService.Create(SOAPMessage, HttpChannel);
|
|
ePrice.Text := FloatToStr(svc.getPrice(eISBN.Text));
|
|
finally
|
|
Screen.Cursor := crDefault;
|
|
end;
|
|
end;
|
|
|
|
procedure TxMethodsMainForm.GetRateButtonClick(Sender: TObject);
|
|
var
|
|
svc: ICurrencyExchangeService;
|
|
begin
|
|
Screen.Cursor := crHourGlass;
|
|
try
|
|
SetProxy;
|
|
svc := CoCurrencyExchangeService.Create(SOAPMessage, HttpChannel);
|
|
eRate.Lines.Add('Exchange Rate from ' + cbFrom.Text + ' to ' + cbTo.Text + ' = ' + FloatToStr(svc.getRate(cbFrom.Text, cbTo.Text)));
|
|
finally
|
|
Screen.Cursor := crDefault;
|
|
end;
|
|
end;
|
|
|
|
procedure TxMethodsMainForm.CheckDomainButtonClick(Sender: TObject);
|
|
var
|
|
svc: Inet_xmethods_services_domainchecker_DomainCheckerService;
|
|
begin
|
|
Screen.Cursor := crHourGlass;
|
|
try
|
|
SetProxy();
|
|
eDomainAvailability.Text := '';
|
|
eDomainAvailability.Repaint();
|
|
svc := Conet_xmethods_services_domainchecker_DomainCheckerService.Create(SOAPMessage, HttpChannel);
|
|
eDomainAvailability.Text := svc.checkDomain(eDomain.Text);
|
|
finally
|
|
Screen.Cursor := crDefault;
|
|
end;
|
|
end;
|
|
|
|
procedure TxMethodsMainForm.GetCurrentPriceButtonClick(Sender: TObject);
|
|
var
|
|
svc: IeBayWatcherService;
|
|
Res: double;
|
|
begin
|
|
Screen.Cursor := crHourGlass;
|
|
try
|
|
SetProxy();
|
|
eAuctionValue.Text := '';
|
|
eAuctionValue.Repaint();
|
|
// ToDo: faile swith WinInetHttpChannel. why?
|
|
svc := CoeBayWatcherService.Create(SOAPMessage, HttpChannel);
|
|
Res := svc.getCurrentPrice(eAuctionID.Text);
|
|
eAuctionValue.Text := FloatToStr(Res);
|
|
finally
|
|
Screen.Cursor := crDefault;
|
|
end;
|
|
end;
|
|
|
|
procedure TxMethodsMainForm.GetTrafficButtonClick(Sender: TObject);
|
|
var
|
|
svc: ICATrafficService;
|
|
so: TXMLSerializationOptions;
|
|
begin
|
|
Screen.Cursor := crHourGlass;
|
|
try
|
|
SetProxy();
|
|
svc := CoCATrafficService.Create(SOAPMessage, HttpChannel);
|
|
TrafficMemo.Lines.Text := svc.getTraffic(eHighway.Text);
|
|
SOAPMessage.SerializationOptions := so;
|
|
finally
|
|
Screen.Cursor := crDefault;
|
|
end;
|
|
end;
|
|
|
|
procedure TxMethodsMainForm.GetTrackingStatusButtonClick(Sender: TObject);
|
|
var
|
|
svc: IFedExTrackerService;
|
|
begin
|
|
Screen.Cursor := crHourGlass;
|
|
try
|
|
SetProxy;
|
|
svc := CoFedExTrackerService.Create(SOAPMessage, HttpChannel);
|
|
FedexMemo.Lines.Text := svc.getStatus(eTrackingID.Text);
|
|
finally
|
|
Screen.Cursor := crDefault;
|
|
end;
|
|
end;
|
|
|
|
procedure TxMethodsMainForm.GetAllServiceNamesButtonClick(Sender: TObject);
|
|
var
|
|
svc: IXMethodsQuery;
|
|
aoss: ArrayOfServiceSummary;
|
|
i: integer;
|
|
sd: ServiceDetail;
|
|
begin
|
|
Screen.Cursor := crHourGlass;
|
|
try
|
|
svc := CoXMethodsQuery.Create(SOAPMessage, HttpChannel);
|
|
|
|
QueryServiceMemo.Lines.Add('------------------ ' + TButton(Sender).Caption + ' ------------------');
|
|
|
|
if (Sender = getAllServiceNamesButton) or (Sender = GetServiceSummariesByPublisherButton) then begin
|
|
if (Sender = GetServiceSummariesByPublisherButton) and (ePublisher.Text <> '') then
|
|
aoss := svc.getServiceSummariesByPublisher(ePublisher.Text)
|
|
else
|
|
aoss := svc.getAllServiceSummaries;
|
|
try
|
|
if aoss <> nil then
|
|
for i := 0 to (aoss.Count - 1) do
|
|
with aoss[i] do
|
|
QueryServiceMemo.Lines.Add(Format('%s : %s, %s', [id, name, shortDescription]));
|
|
finally
|
|
aoss.Free;
|
|
end
|
|
end
|
|
else if (Sender = GetServiceDetailButton) then begin
|
|
sd := svc.getServiceDetail(eServiceID.Text);
|
|
try
|
|
if sd <> nil then
|
|
QueryServiceMemo.Lines.Add(sd.name + sLineBreak +
|
|
sd.id + sLineBreak +
|
|
sd.shortDescription + sLineBreak +
|
|
sd.description + sLineBreak +
|
|
sd.implementationID + sLineBreak +
|
|
sd.email + sLineBreak +
|
|
sd.wsdlURL + sLineBreak +
|
|
sd.infoURL + sLineBreak +
|
|
sd.publisherID);
|
|
finally
|
|
sd.Free;
|
|
end;
|
|
end;
|
|
finally
|
|
Screen.Cursor := crDefault;
|
|
end;
|
|
end;
|
|
|
|
procedure TxMethodsMainForm.Label38Click(Sender: TObject);
|
|
begin
|
|
ShellExecute(Handle, 'open', pChar((Sender as TLabel).Caption), nil, nil, SW_SHOWNORMAL);
|
|
end;
|
|
|
|
end.
|
|
|