Componentes.Terceros.RemObj.../internal/5.0.23.613/1/RemObjects SDK for Delphi/Samples/Time Server/TfrmServerSelectSrc.pas
david 2824855ea7 - Modificación del paquete RemObjects_Core_D10 para que sea un paquete de runtime/designtime (antes era designtime sólo)
- 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
2007-09-10 14:06:19 +00:00

105 lines
2.5 KiB
ObjectPascal

unit TfrmServerSelectSrc;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, CheckLst,
TXPBrdCastServerSrc,
uROServer;
type
TfrmServerSelect = class(TForm)
lbServers: TCheckListBox;
pnlButtons: TPanel;
btnOk: TButton;
btCancel: TButton;
procedure lbServersClickCheck(Sender: TObject);
private
fBrdCstSvr: TXPBrdCastServer;
fSvrItems: TXPServerCollection;
protected
procedure RefreshServers;
procedure AddServer(aServer: TROServer);
procedure RemoveServer(aServer: TROServer);
public
constructor Create(aBrdCstServer : TXPBrdCastServer); reintroduce;
end;
implementation
{$R *.dfm}
{ TfrmServerSelect }
constructor TfrmServerSelect.Create(aBrdCstServer: TXPBrdCastServer);
begin
inherited Create(nil);
fBrdCstSvr := aBrdCstServer;
if Assigned(fBrdCstSvr)
then fSvrItems := fBrdCstSvr.ExportedServers
else fSvrItems := nil;
RefreshServers;
end;
procedure TfrmServerSelect.RefreshServers;
var lOwner: TComponent;
i,Idx: Integer;
begin
lbServers.Clear;
if not(Assigned(fBrdCstSvr)) then
Exit;
lOwner := fBrdCstSvr.Owner;
if not(Assigned(lOwner)) then
Exit;
// Get all the ROServers from the owner of the TXPBrdCastServer
for i := 0 to lOwner.ComponentCount-1 do
begin
if lOwner.Components[i].InheritsFrom(TROServer) then
begin
if not(lOwner.Components[i].InheritsFrom(TXPBrdCastServer)) then
lbServers.AddItem(lOwner.Components[i].Name,lOwner.Components[i]);
end;
end;
// Set checkmark for all servers containd in ExposedServers
for i := 0 to fSvrItems.Count-1 do
begin
Idx := lbServers.Items.IndexOfObject(fSvrItems.Servers[i]);
if Idx >= 0 then
begin
lbServers.Checked[Idx] := True;
end;
end;
end;
procedure TfrmServerSelect.lbServersClickCheck(Sender: TObject);
begin
if lbServers.Checked[lbServers.ItemIndex]
then AddServer(TROServer(lbServers.Items.Objects[lbServers.ItemIndex]))
else RemoveServer(TROServer(lbServers.Items.Objects[lbServers.ItemIndex]));
end;
procedure TfrmServerSelect.AddServer(aServer: TROServer);
begin
if not(Assigned(aServer)) then
Exit;
fSvrItems.AddServer(aServer);
end;
procedure TfrmServerSelect.RemoveServer(aServer: TROServer);
begin
if not(Assigned(aServer)) then
Exit;
fSvrItems.DeleteServer(aServer);
end;
end.