| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- unit TalkFormFactory;
- interface
- uses
- UITalkTeamForm, UITalkPersonalForm, UITalkFormBase, SysUtils, Classes, RealICQUtility,
- InterfaceUI, mybean.core.objects;
- type
- TTalkFormFactory = class(TMyBeanInterfacedObject, ITalkFormFactory)
- private
- FTalkForms: TInterfaceList;
- function CreateTalkPersonalForm(AReceiver: string): IUITalkForm;
- function CreateTalkTeamForm(ATeamID: string): IUITalkForm;
- public
- constructor Create; override;
- destructor Destroy; override;
- function GetTalkForm(AFormID: string; ACategory: TTalkingCategory): IUITalkForm;
- end;
- implementation
- uses
- Forms;
- { TTalkFormFactory }
- function TTalkFormFactory.GetTalkForm(AFormID: string;
- ACategory: TTalkingCategory): IUITalkForm;
- var
- i: Integer;
- begin
- for i := 0 to FTalkForms.Count - 1 do
- if SameText((FTalkForms.Items[i] as IUITalkForm).GetFormID, AFormID) then
- begin
- Result := (FTalkForms.Items[i] as IUITalkForm);
- Exit;
- end;
-
- case ACategory of
- tcNormal:
- begin
- Result := CreateTalkPersonalForm(AFormID);
- end;
- tcTeam:
- begin
- Result := CreateTalkTeamForm(AFormID);
- end;
- end;
- FTalkForms.Add(Result);
- end;
- function TTalkFormFactory.CreateTalkPersonalForm(
- AReceiver: string): IUITalkForm;
- var
- AForm: TUITalkPersonalForm;
- begin
- AForm := TUITalkPersonalForm.Create(nil, AReceiver);
- AForm.ChangeUIColor($EADEBA);
- Result := AForm;
- end;
- function TTalkFormFactory.CreateTalkTeamForm(ATeamID: string): IUITalkForm;
- var
- AForm: TUITalkTeamForm;
- begin
- AForm := TUITalkTeamForm.Create(nil, ATeamID);
- AForm.ChangeUIColor($EADEBA);
- Result := AForm;
- end;
- constructor TTalkFormFactory.Create;
- begin
- FTalkForms := TInterfaceList.Create;
- end;
- destructor TTalkFormFactory.Destroy;
- begin
- FTalkForms := nil;
- inherited;
- end;
- end.
|