unit umain; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons, StdCtrls, ActnList, ExtCtrls; type { TfMain } TfMain = class(TForm) actClearLog: TAction; actStop: TAction; actStart: TAction; AL: TActionList; Button1: TButton; Button2: TButton; edtPort: TEdit; Label1: TLabel; mmoLog: TMemo; procedure actClearLogExecute(Sender: TObject); procedure actStartExecute(Sender: TObject); procedure actStartUpdate(Sender: TObject); procedure actStopExecute(Sender: TObject); procedure actStopUpdate(Sender: TObject); procedure FormCreate(Sender: TObject); private public procedure LogMessage(const AMsg : string); end; var fMain: TfMain; implementation uses server_unit, server_service_soap, server_binary_formatter, calculator, calculator_imp, calculator_binder, metadata_service, metadata_service_imp, metadata_service_binder; Var scktServer : TTcpSrvApp; { TfMain } procedure TfMain.actStartUpdate(Sender: TObject); begin TAction(Sender).Enabled := Not ( Assigned(scktServer) And scktServer.IsActive() ); end; procedure TfMain.actStopExecute(Sender: TObject); begin If Assigned(scktServer) Then Begin scktServer.Stop(); End; end; procedure TfMain.actStopUpdate(Sender: TObject); begin TAction(Sender).Enabled := Assigned(scktServer) And scktServer.IsActive(); end; procedure TfMain.actStartExecute(Sender: TObject); begin mmoLog.Clear(); If Not Assigned(scktServer) Then scktServer := TTcpSrvApp.Create(); If Not scktServer.IsActive() Then scktServer.Start(); end; procedure TfMain.actClearLogExecute(Sender: TObject); begin mmoLog.Clear(); end; procedure TfMain.FormCreate(Sender: TObject); begin Server_service_RegisterCalculatorService(); Server_service_RegisterCalculatorService(); RegisterCalculatorImplementationFactory(); Server_service_RegisterSoapFormat(); Server_service_RegisterBinaryFormat(); RegisterWSTMetadataServiceImplementationFactory(); Server_service_RegisterWSTMetadataServiceService end; procedure TfMain.LogMessage(const AMsg: string); begin mmoLog.Lines.Add(AMsg); end; initialization {$I umain.lrs} end.