{ *************************************************************************** } { } { Jadro pluginu 2 Asseco Solutions } { } { *************************************************************************** } unit plgSpravce; interface uses plgAkce, ddPlugin_TLB, Contnrs, Classes; type TJedenHelios = class private FHelios: IHelios; FAkce: TplgAkcePrehledu; public property Helios: IHelios read FHelios; property Akce: TplgAkcePrehledu read FAkce; end; TSpravceHeliosu = class private FSeznam: TObjectList; function NajdiHelios(Helios: IHelios): Integer; function NajdiIdent(Helios: IHelios): Integer; public constructor Create; destructor Destroy; override; // === pouze interni pouziti !!! ============================= procedure PridejHelios(Helios: IHelios); procedure OdeberHelios(Helios: IHelios); procedure NastavAkce(Helios: IHelios; Akce: TplgAkcePrehledu); // =========================================================== function VratVlastnika(Helios: IHelios): IHelios; function VratAkcePrehledu(Helios: IHelios): TplgAkcePrehledu; end; var SpravceHeliosu: TSpravceHeliosu = nil; { =========================================================================== } implementation { ########################################################################### } constructor TSpravceHeliosu.Create; begin inherited Create; FSeznam := TObjectList.Create; end; { --------------------------------------------------------------------------- } destructor TSpravceHeliosu.Destroy; begin FSeznam.Free; inherited; end; { --------------------------------------------------------------------------- } function TSpravceHeliosu.NajdiHelios(Helios: IHelios): Integer; var II: Integer; begin // jedeme odzadu - bude to rychlejsi if Assigned(Helios) then for II := FSeznam.Count-1 downto 0 do begin if TJedenHelios(FSeznam.Items[II]).FHelios = Helios then begin Result := II; Exit; end; end; Result := -1; // nenalezeno end; { --------------------------------------------------------------------------- } function TSpravceHeliosu.NajdiIdent(Helios: IHelios): Integer; var II: Integer; begin // jedeme odzadu - bude to rychlejsi if Assigned(Helios) then for II := FSeznam.Count-1 downto 0 do begin if TJedenHelios(FSeznam.Items[II]).FHelios.Ident = Helios.Ident then begin Result := II; Exit; end; end; Result := -1; // nenalezeno end; { --------------------------------------------------------------------------- } procedure TSpravceHeliosu.PridejHelios(Helios: IHelios); var JH: TJedenHelios; begin if not Assigned(Helios) then Exit; JH := TJedenHelios.Create; JH.FHelios := Helios; FSeznam.Add(JH); end; { --------------------------------------------------------------------------- } procedure TSpravceHeliosu.OdeberHelios(Helios: IHelios); var II: Integer; begin II := NajdiHelios(Helios); if II <> -1 then FSeznam.Delete(II); end; { --------------------------------------------------------------------------- } procedure TSpravceHeliosu.NastavAkce(Helios: IHelios; Akce: TplgAkcePrehledu); var II: Integer; begin II := NajdiHelios(Helios); if II <> -1 then TJedenHelios(FSeznam.Items[II]).FAkce := Akce; end; { --------------------------------------------------------------------------- } function TSpravceHeliosu.VratVlastnika(Helios: IHelios): IHelios; var II: Integer; Vlastnik: IHelios; begin if not Assigned(Helios) then Result := nil else begin Vlastnik := Helios.HeliosVlastnik; II := NajdiIdent(Vlastnik); if II <> -1 then Result := TJedenHelios(FSeznam.Items[II]).FHelios else Result := Vlastnik; end; end; { --------------------------------------------------------------------------- } function TSpravceHeliosu.VratAkcePrehledu(Helios: IHelios): TplgAkcePrehledu; var II: Integer; begin II := NajdiIdent(Helios); if II <> -1 then Result := TJedenHelios(FSeznam.Items[II]).FAkce else Result := nil; end; { ########################################################################### } initialization SpravceHeliosu := TSpravceHeliosu.Create; { ########################################################################### } end. // LIB | USER: rk | DT: 08.03.2005 13:29:04 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ // LOCAL | USER: rk | DT: 08.03.2005 13:54:41 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest // LIB | USER: rk | DT: 08.03.2005 14:13:52 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ // LOCAL | USER: rk | DT: 15.03.2005 09:35:54 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest // LIB | USER: rk | DT: 15.03.2005 10:05:23 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib // LOCAL | USER: RK | DT: 17.02.2006 09:58:05 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest // LIB | USER: RK | DT: 17.02.2006 09:58:09 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib // LOCAL | USER: RK | DT: 01.08.2007 08:37:19 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest // LIB | USER: RK | DT: 01.08.2007 08:52:07 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib