Files
LOVATO-plugin/libSys/plgSpravce.pas
2026-04-07 18:23:56 +02:00

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