老师给我的接口规范中关于 台标 是这样定义的
HRESULT CGModule_Logo_Start
HRESULT CGModule_Logo_Stop我想问您的是:这个Form(下面有个pas和ddp文件)能不能写成一个dll
以供其他程序调用如果可以的话 我应该从哪方面做呢 或者怎么写 我是第一次接触的delphi 有很多地方还不是很明白下面的是代码,  各位学长 能帮帮忙吗??
unit UnitTaibiaoPeriodDlg;interfaceuses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, 
  Buttons, ExtCtrls, ComCtrls, UnitComponentModel;type
  TDlgTaibiaoDisplayPeriod = class(TForm)
    CheckBoxEnableTaibiaoPeriodDisplay: TCheckBox;
    GroupBoxTaibiaoDisplayTime: TGroupBox;
    DateTimePickerTaibiaoDisplayStartTime: TDateTimePicker;
    DateTimePickerTaibiaoDisplayStopTime: TDateTimePicker;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    Timer1: TTimer;
    Label3: TLabel;
    procedure CheckBoxEnableTaibiaoPeriodDisplayClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    m_StartTime: TDateTime;
    m_StopTime: TDateTime;
    m_UseStationLogoPeriodDisplay: Boolean;    FStationLogo: TIconComponentModel;
    m_IsLogoDisplaying: Boolean;    function GetStartTimeFromIniFile(): TDateTime;
    function GetStopTimeFromInifile(): TDateTime;    
    function WriteStartTimeToIniFile(in_TaibiaoStartTime: TDateTime): HResult;
    function WriteStopTimeFromInifile(in_TaibiaoStopTime: TDateTime): HResult;
    function WriteIfUseStartStopTimeForTaibiao(in_IfUserPreriodDisplay: Boolean): HResult;
  public
    { Public declarations }
    function GetShouldPlayTaibiaoNow(): Boolean;
    function SetToDisplayStationLogo(in_StationLogo: TIconComponentModel): HResult;
    function GetIfUseStartStopTimeForTaibiao: Boolean;
  end;var
  DlgTaibiaoDisplayPeriod: TDlgTaibiaoDisplayPeriod;implementation
uses inifiles;
{$R *.dfm}procedure TDlgTaibiaoDisplayPeriod.CheckBoxEnableTaibiaoPeriodDisplayClick(
  Sender: TObject);
begin
  if Self.CheckBoxEnableTaibiaoPeriodDisplay.Checked then
  begin
    Self.GroupBoxTaibiaoDisplayTime.Enabled:= True;
  end
  else
  begin
    Self.GroupBoxTaibiaoDisplayTime.Enabled:= False;
  end;
end;function TDlgTaibiaoDisplayPeriod.GetIfUseStartStopTimeForTaibiao: Boolean;
var
TmpIniFile: TIniFile;
begin
  //函数功能:得到是否检查AV同步.  //Result:= True;
  TmpIniFile:= TIniFile.Create(ExtractFilePath(Application.ExeName) + '播出工作站设置.ini');
  try
    Result:= TmpIniFile.ReadBool('台标播出时段','在规定时段内播出:1 全天播出:0',False);
    if not TmpIniFile.ValueExists('台标播出时段','在规定时段内播出:1 全天播出:0') then
    begin
      TmpIniFile.WriteBool('台标播出时段','在规定时段内播出:1 全天播出:0',Result);
    end;
  finally
    TmpIniFile.Destroy;
  end;
end;function TDlgTaibiaoDisplayPeriod.GetShouldPlayTaibiaoNow: Boolean;
var
  TmpNow: TDateTime;
begin
  if Self.m_UseStationLogoPeriodDisplay then
  begin
    TmpNow := Frac(Now);
    if Self.m_StartTime < Self.m_StopTime then
    begin
      if (TmpNow >= Self.m_StartTime) and (TmpNow <= Self.m_StopTime) then
      begin
        Result:= True;
      end
      else
      begin
        Result:= False;
      end;
    end
    else
    begin
      if (TmpNow > Self.m_StopTime) and (TmpNow < Self.m_StartTime) then
      begin
        Result:= False;
      end
      else
      begin
        Result:= True;
      end;
    end;
  end
  else
  begin
    Result:= True;
  end;
end;function TDlgTaibiaoDisplayPeriod.GetStartTimeFromIniFile: TDateTime;
var
TmpIniFile: TIniFile;
begin
  //函数功能:得到是否检查AV同步.  //Result:= EncodeTime(7, 0, 0,0);
  TmpIniFile:= TIniFile.Create(ExtractFilePath(Application.ExeName) + '播出工作站设置.ini');
  try
    Result:= TmpIniFile.ReadTime('台标播出时段','台标开始显示时间',EncodeTime(7, 0, 0,0));
    if not TmpIniFile.ValueExists('台标播出时段','台标开始显示时间') then
    begin
      TmpIniFile.WriteTime('台标播出时段','台标开始显示时间',Result);
    end;
  finally
    TmpIniFile.Destroy;
  end;
end;function TDlgTaibiaoDisplayPeriod.GetStopTimeFromInifile: TDateTime;
var
TmpIniFile: TIniFile;
begin
  //函数功能:得到是否检查AV同步.  //Result:= EncodeTime(6, 30, 0,0);
  TmpIniFile:= TIniFile.Create(ExtractFilePath(Application.ExeName) + '播出工作站设置.ini');
  try
    Result:= TmpIniFile.ReadTime('台标播出时段','台标停止显示时间',EncodeTime(6, 30, 0,0));
    if not TmpIniFile.ValueExists('台标播出时段','台标停止显示时间') then
    begin
      TmpIniFile.WriteTime('台标播出时段','台标停止显示时间',Result);
    end;
  finally
    TmpIniFile.Destroy;
  end;
end;function TDlgTaibiaoDisplayPeriod.WriteIfUseStartStopTimeForTaibiao(
  in_IfUserPreriodDisplay: Boolean): HResult;
var
TmpIniFile: TIniFile;
begin
  Result:= 0;
  //函数功能:得到是否检查AV同步.
  TmpIniFile:= TIniFile.Create(ExtractFilePath(Application.ExeName) + '播出工作站设置.ini');
  try
    TmpIniFile.WriteBool('台标播出时段','在规定时段内播出:1 全天播出:0',in_IfUserPreriodDisplay);
  finally
    TmpIniFile.Destroy;
  end;
end;function TDlgTaibiaoDisplayPeriod.WriteStartTimeToIniFile(
  in_TaibiaoStartTime: TDateTime): HResult;
var
TmpIniFile: TIniFile;
begin
  Result:= 0;
  //函数功能:得到是否检查AV同步.
  TmpIniFile:= TIniFile.Create(ExtractFilePath(Application.ExeName) + '播出工作站设置.ini');
  try
    TmpIniFile.WriteTime('台标播出时段','台标开始显示时间',Frac(in_TaibiaoStartTime));
  finally
    TmpIniFile.Destroy;
  end;
end;function TDlgTaibiaoDisplayPeriod.WriteStopTimeFromInifile(
  in_TaibiaoStopTime: TDateTime): HResult;
var
TmpIniFile: TIniFile;
begin
  Result:= 0;
  //函数功能:得到是否检查AV同步.
  TmpIniFile:= TIniFile.Create(ExtractFilePath(Application.ExeName) + '播出工作站设置.ini');
  try
    TmpIniFile.WriteTime('台标播出时段','台标停止显示时间',Frac(in_TaibiaoStopTime));
  finally
    TmpIniFile.Destroy;
  end;
end;procedure TDlgTaibiaoDisplayPeriod.Button1Click(Sender: TObject);
begin
  Self.WriteStartTimeToIniFile(Self.DateTimePickerTaibiaoDisplayStartTime.DateTime);
  Self.WriteStopTimeFromInifile(Self.DateTimePickerTaibiaoDisplayStopTime.DateTime);
  Self.WriteIfUseStartStopTimeForTaibiao(Self.CheckBoxEnableTaibiaoPeriodDisplay.Checked);
  
  Self.m_StartTime := Self.GetStartTimeFromIniFile;
  Self.m_StopTime:= Self.GetStopTimeFromInifile;
  Self.m_UseStationLogoPeriodDisplay:= Self.GetIfUseStartStopTimeForTaibiao;
  Self.ModalResult:= mrOk;
end;procedure TDlgTaibiaoDisplayPeriod.Button2Click(Sender: TObject);
begin
  Self.ModalResult := mrCancel;
end;procedure TDlgTaibiaoDisplayPeriod.FormActivate(Sender: TObject);
begin
  Self.DateTimePickerTaibiaoDisplayStartTime.DateTime:= Self.GetStartTimeFromIniFile;
  Self.DateTimePickerTaibiaoDisplayStopTime.DateTime:= Self.GetStopTimeFromInifile;
  Self.CheckBoxEnableTaibiaoPeriodDisplay.Checked:= Self.GetIfUseStartStopTimeForTaibiao;
end;function TDlgTaibiaoDisplayPeriod.SetToDisplayStationLogo(
  in_StationLogo: TIconComponentModel): HResult;
begin
  Result:= 0;
  if in_StationLogo <> nil then
  begin
    if Self.FStationLogo <> nil then
    begin
      if Self.FStationLogo <> in_StationLogo then
      begin
        if Self.FStationLogo.DisplayThread <> nil then
        begin
          Self.FStationLogo.StopDisplay;
        end;
      end;
    end;
    Self.FStationLogo:= in_StationLogo;
    Self.Timer1.Enabled:= True;
  end
  else
  begin
    if Self.FStationLogo <> nil then
    begin
      if Self.FStationLogo.DisplayThread <> nil then
      begin
        Self.FStationLogo.StopDisplay;
      end;
    end;
    Self.FStationLogo:= nil;
  end;
end;procedure TDlgTaibiaoDisplayPeriod.Timer1Timer(Sender: TObject);
begin
  if Self.FStationLogo = nil then
  begin
    exit;
  end;
  if Self.FStationLogo.DisplayThread <> nil then
  begin
    if not Self.GetShouldPlayTaibiaoNow then
    begin
      //Application.MessageBox('STOP','',MB_OK);
        Self.FStationLogo.StopDisplay;
    end;
  end
  else
  begin
    if Self.GetShouldPlayTaibiaoNow then
    begin
      //Application.MessageBox('sTART','',MB_OK);
        Self.FStationLogo.StartDisplay(0);
        Self.m_IsLogoDisplaying:= True;
    end;
  end;
end;procedure TDlgTaibiaoDisplayPeriod.FormCreate(Sender: TObject);
begin
  FStationLogo := nil;  Self.m_StartTime := Self.GetStartTimeFromIniFile;
  Self.m_StopTime:= Self.GetStopTimeFromInifile;
  Self.m_UseStationLogoPeriodDisplay:= Self.GetIfUseStartStopTimeForTaibiao;end;end.