103 lines
3.1 KiB
ObjectPascal
103 lines
3.1 KiB
ObjectPascal
|
|
unit fROServerClassForm;
|
||
|
|
|
||
|
|
interface
|
||
|
|
|
||
|
|
uses
|
||
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
|
||
|
|
Dialogs, StdCtrls, ExtCtrls, Buttons;
|
||
|
|
|
||
|
|
type
|
||
|
|
TROServerClassForm = class(TForm)
|
||
|
|
rgClassType: TRadioGroup;
|
||
|
|
GroupBox1: TPanel;
|
||
|
|
lbDescription: TLabel;
|
||
|
|
Image2: TImage;
|
||
|
|
Bevel2: TBevel;
|
||
|
|
Panel1: TPanel;
|
||
|
|
btn_Ok: TBitBtn;
|
||
|
|
Button2: TBitBtn;
|
||
|
|
Bevel3: TBevel;
|
||
|
|
lbl_Caption: TLabel;
|
||
|
|
Label2: TLabel;
|
||
|
|
procedure FormCreate(Sender: TObject);
|
||
|
|
procedure rgClassTypeClick(Sender: TObject);
|
||
|
|
private
|
||
|
|
function GetServerClassName : string;
|
||
|
|
function GetRequiredUnits: string;
|
||
|
|
|
||
|
|
public
|
||
|
|
property ServerClassName : string read GetServerClassName;
|
||
|
|
property RequiredUnits : string read GetRequiredUnits;
|
||
|
|
end;
|
||
|
|
|
||
|
|
var
|
||
|
|
ROServerClassForm: TROServerClassForm;
|
||
|
|
|
||
|
|
function SelectROServerClassType(const ServiceName : string; out aServerClassname : string; out someRequiredUnits : string) : boolean;
|
||
|
|
|
||
|
|
implementation
|
||
|
|
|
||
|
|
uses uRODLGenTools, uROServer, uRORemoteDataModule;
|
||
|
|
|
||
|
|
{$R *.dfm}
|
||
|
|
|
||
|
|
function SelectROServerClassType(const ServiceName : string; out aServerClassname : string; out someRequiredUnits : string) : boolean;
|
||
|
|
begin
|
||
|
|
with TROServerClassForm.Create(NIL) do try
|
||
|
|
Caption := Format(Caption, [ServiceName]);
|
||
|
|
lbl_Caption.Caption := Format(lbl_Caption.Caption, [ServiceName]);
|
||
|
|
|
||
|
|
result := (ShowModal=mrOK);
|
||
|
|
aServerClassname := ServerClassName;
|
||
|
|
someRequiredUnits := RequiredUnits;
|
||
|
|
finally
|
||
|
|
Free;
|
||
|
|
end;
|
||
|
|
end;
|
||
|
|
|
||
|
|
procedure TROServerClassForm.FormCreate(Sender: TObject);
|
||
|
|
var i : integer;
|
||
|
|
s : string;
|
||
|
|
begin
|
||
|
|
rgClassType.Items.Clear;
|
||
|
|
|
||
|
|
rgClassType.Items.Add('&Simple object');
|
||
|
|
for i := (GetRODataModuleClassCount-1) downto 0 do begin
|
||
|
|
s := GetRODataModuleClass(i).Alias;
|
||
|
|
//if (i=0) then s := s+' (Reccommended)';
|
||
|
|
if GetRODataModuleClass(i).ClassType = TRORemoteDataModule then
|
||
|
|
s := s+' (recommended)';
|
||
|
|
rgClassType.Items.Add(s);
|
||
|
|
end;
|
||
|
|
|
||
|
|
rgClassType.ItemIndex := 1; { we've added one additional item }
|
||
|
|
|
||
|
|
//Height := (225*(GetRODataModuleClassCount+1)) div 3
|
||
|
|
ClientHeight := 250 + (GetRODataModuleClassCount()*25);
|
||
|
|
end;
|
||
|
|
|
||
|
|
function TROServerClassForm.GetRequiredUnits: string;
|
||
|
|
begin
|
||
|
|
if (rgClassType.ItemIndex=0)
|
||
|
|
then result := ''
|
||
|
|
else result := GetRODataModuleClass(GetRODataModuleClassCount-rgClassType.ItemIndex).RequiredUnits
|
||
|
|
end;
|
||
|
|
|
||
|
|
function TROServerClassForm.GetServerClassName : string;
|
||
|
|
begin
|
||
|
|
if (rgClassType.ItemIndex=0)
|
||
|
|
then result := TRORemotable.ClassName
|
||
|
|
else result := GetRODataModuleClass(GetRODataModuleClassCount-rgClassType.ItemIndex).ClassType.ClassName
|
||
|
|
end;
|
||
|
|
|
||
|
|
procedure TROServerClassForm.rgClassTypeClick(Sender: TObject);
|
||
|
|
begin
|
||
|
|
if (rgClassType.ItemIndex=0) then
|
||
|
|
lbDescription.Caption := 'Non-visual Delphi object. Recommended for services that do not require additional components '+
|
||
|
|
'and don''t need to provide the design time features of a data module.'
|
||
|
|
else
|
||
|
|
lbDescription.Caption := GetRODataModuleClass(GetRODataModuleClassCount-rgClassType.ItemIndex).Description;
|
||
|
|
end;
|
||
|
|
|
||
|
|
end.
|