- Recompilación en Delphi10 de todos los paquetes de RO para generar las DCU's en Lib\D10 - Recompilación en Delphi10 de todos los paquetes de DA para generar las DCU's en Lib\D10 git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@9 b6239004-a887-0f4b-9937-50029ccdca16
133 lines
3.6 KiB
ObjectPascal
133 lines
3.6 KiB
ObjectPascal
unit BroadcastChatMain;
|
|
|
|
{$I RemObjects.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, StdCtrls, ExtCtrls, Buttons, uROPoweredByRemObjectsButton,
|
|
uROServer, uROIndyUDPServer, uROBroadcastServer,
|
|
uROIndyUDPChannel, uROBroadcastChannel, uROClient,
|
|
uROBINMessage, BroadcastChatLibrary_Async, ActnList;
|
|
|
|
type
|
|
TBroadcastChatMainForm = class(TForm)
|
|
Panel1: TPanel;
|
|
Panel2: TPanel;
|
|
Panel3: TPanel;
|
|
Panel4: TPanel;
|
|
ed_Chat: TMemo;
|
|
Panel5: TPanel;
|
|
Panel6: TPanel;
|
|
Panel7: TPanel;
|
|
ed_Message: TEdit;
|
|
Panel8: TPanel;
|
|
Panel9: TPanel;
|
|
ed_NickName: TEdit;
|
|
Label1: TLabel;
|
|
RoPoweredByRemObjectsButton1: TRoPoweredByRemObjectsButton;
|
|
btn_Send: TBitBtn;
|
|
ROBINMessage: TROBINMessage;
|
|
ROBroadcastServer: TROBroadcastServer;
|
|
ROBroadcastChannel: TROBroadcastChannel;
|
|
ActionList1: TActionList;
|
|
ac_SendMessage: TAction;
|
|
BitBtn1: TBitBtn;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure ac_SendMessageExecute(Sender: TObject);
|
|
procedure ActionList1Update(Action: TBasicAction;
|
|
var Handled: Boolean);
|
|
procedure BitBtn1Click(Sender: TObject);
|
|
// procedure tim_CheckInfoTimer(Sender: TObject);
|
|
procedure ROBroadcastChannelBroadCastResponseReceived(aServerIP, aResponseUID: string);
|
|
procedure FormDestroy(Sender: TObject);
|
|
private
|
|
fChatProxy: IBroadcastChatService_Async;
|
|
public
|
|
{$IFDEF VER140}
|
|
procedure WMUser(var Msg: TMessage); message WM_USER;
|
|
{$ENDIF}
|
|
procedure MessageReceived(iDate: TDateTime; const iFrom, iMessage: string);
|
|
end;
|
|
|
|
var
|
|
BroadcastChatMainForm: TBroadcastChatMainForm;
|
|
|
|
implementation
|
|
|
|
uses
|
|
IdStack, IdGlobal, BroadcastChatService_Impl;
|
|
|
|
{$R *.dfm}
|
|
|
|
{$IFDEF RemObjects_INDY8}
|
|
|
|
function IndyGetHostName: string;
|
|
var
|
|
i: LongWord;
|
|
begin
|
|
SetLength(Result, MAX_COMPUTERNAME_LENGTH + 1);
|
|
i := Length(Result);
|
|
if GetComputerName(@Result[1], i) then begin
|
|
SetLength(Result, i);
|
|
end;
|
|
end;
|
|
{$ENDIF}
|
|
|
|
procedure TBroadcastChatMainForm.FormCreate(Sender: TObject);
|
|
begin
|
|
fChatProxy := CoBroadcastChatService_Async.Create(ROBINMessage, ROBroadcastChannel);
|
|
{$IFDEF RemObjects_INDY10}
|
|
ed_NickName.Text := GStack.HostName;
|
|
{$ELSE}
|
|
ed_NickName.Text := IndyGetHostName;
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TBroadcastChatMainForm.MessageReceived(iDate: TDateTime; const iFrom, iMessage: string);
|
|
begin
|
|
ed_Chat.Lines.Add(Format('[%s] <%s> %s', [TimeToStr(iDate), iFrom, iMessage]));
|
|
end;
|
|
|
|
procedure TBroadcastChatMainForm.ac_SendMessageExecute(Sender: TObject);
|
|
begin
|
|
if ed_Message.Text <> '' then begin
|
|
fChatProxy.Invoke_SendMessage(Now, ed_NickName.Text, ed_Message.Text);
|
|
ed_Message.Text := '';
|
|
ActiveControl := ed_Message;
|
|
end;
|
|
end;
|
|
|
|
procedure TBroadcastChatMainForm.ActionList1Update(Action: TBasicAction; var Handled: Boolean);
|
|
begin
|
|
ac_SendMessage.Enabled := ed_Message.Text <> '';
|
|
end;
|
|
|
|
procedure TBroadcastChatMainForm.BitBtn1Click(Sender: TObject);
|
|
begin
|
|
fChatProxy.Invoke_GetInfo();
|
|
end;
|
|
|
|
procedure TBroadcastChatMainForm.ROBroadcastChannelBroadCastResponseReceived(aServerIP, aResponseUID: string);
|
|
var
|
|
lName: string;
|
|
begin
|
|
lName := fChatProxy.Retrieve_GetInfo();
|
|
ed_Chat.Lines.Add(Format('[%s] chat user: %s (at %s)', [TimeToStr(Now), lName, aServerIP]));
|
|
end;
|
|
|
|
procedure TBroadcastChatMainForm.FormDestroy(Sender: TObject);
|
|
begin
|
|
fChatProxy := nil;
|
|
end;
|
|
|
|
{$IFDEF VER140}
|
|
procedure TBroadcastChatMainForm.WMUser(var Msg: TMessage);
|
|
begin
|
|
TBroadcastChatService(Msg.WParam).MessageReceived;
|
|
end;
|
|
{$ENDIF}
|
|
end.
|
|
|