......
delphi Код:
Function GetArrayIndexByName(name:string):integer;
begin
result := 1;
while (result <= 20) and (name <> NamesArray[result]) do inc(result);
if result > 20 then result := 0;
end;
Function GetArrayIndexByOBjId(ObjId:integer):integer;
begin
result := 1;
while (result <= 20) and (ObjId <> IDNamesArray[result]) do inc(result);
if result > 20 then result := 0;
end;
var
Index : integer;
begin
if FromServer and (pck[1]=#$45) then scanpaneli;
if [условие] then
begin
index := GetArrayIndexByName('имя когото'); //получаем индекс элемента с указаным именем юзаем ее или GetArrayIndexByOBjId я хз как там у тя по коду
if index > 0 then //индекс равен нулю если имя не найдено
begin
buf:=paneli[index];
SendToClientEx(Name);
end;
end;
end.
Оффтоп
на будущее:
уместность использования GetArrayIndexByName в том или ином месте определяеццо кодом в целом.
т.к. кода я не вижу - вариант использования оставлю таким.
делай поменьше циклов в коде скрипта. лучше в самом начале получить и запихнуть результат функции в переменную потратив аж целых 4 байта в памяти чем каждый раз теребить одну и туже функцию с циклом внутри тратя уйму времени процессора и создавая лишние задержки при обработке пакета.