190 lines
5.6 KiB
ObjectPascal
190 lines
5.6 KiB
ObjectPascal
{ *************************************************************************** }
|
|
{ }
|
|
{ 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
|