Модуль "Мое меню" (часть 3) - GetMyMenu
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
от 07 декабря 2007 г.
procedure TfrmP2K_MyMenu.GetMyMenu(var AMyMenu: TArrayOfMyMenu; var AMyMenuLink: TArrayOfMyMenuLinks; AfrmProgress: TfrmProgress); var xData: pbytearray; j: integer; rec: string; res: boolean; count: word; cnt: integer;
begin
cnt:=0;
if not Form1.IsP2KConnected then exit;
xData:= AllocMeM(14);
//SEEM_SHORTCUT_SLOTS
try
res:= P2K.ReadSeem('0157', '0001', '0', 0, xData, count);
if not res then begin FreeMem(xData); exit; end;
for j:= 0 to 13 do SEEM_SHORTCUT_SLOTS[j]:= xData[j];
finally
FreeMem(xData);
end;
AfrmProgress.AdvProgressBar1.Value:= 0;
AfrmProgress.AdvProgressBar1.MaxValue:= 100;
xData:= AllocMem($FA4);
try
FillMemory(@AvailMenu, 100, $FF);
FillMemory(@AvailMenuLink, 50, $FF);
//for j:= 1 to 100 do AvailMenu[j]:= 255;
//for j:= 1 to 50 do AvailMenuLink[j]:= 255;
for j:= 1 to 100 do
begin
rec:= inttohex(j, 4);
FillMemory(xData, $FA4, 0);
res:= P2K.ReadSeem('0002', ansilowercase(rec), '0', 0, xData, count);
if res then begin
if xData <> nil then ConvertBufferToMyMenuStructure(xData, AMyMenu[j]) else break;
inc(cnt);
AfrmProgress.AdvProgressBar1.Value:= trunc(100*(cnt/150));
AfrmProgress.Update;
end;
end;
finally
FreeMem(xData, $FA4);
end;
xData:= AllocMem($FA4);
try
for j:= 1 to 50 do begin
rec:= inttohex(j, 4);
FillMemory(xData, $FA4, 0);
res:= P2K.ReadSeem('017a', ansilowercase(rec), '0', 0, xData, count);
if res then begin
if xData <> nil then ConvertBufferToMyMenuLinkStructure(xData, AMyMenuLink[j]) else break;
inc(cnt);
AfrmProgress.AdvProgressBar1.Value:= trunc(100*(cnt/150));
AfrmProgress.Update;
end;
end;
finally
FreeMem(xData, $FA4);
end;
end;
Еще записи по теме
- Модуль "P2KApi" (часть 77) - TP2KAPI.Ping_P2K00
- Модуль "P2KFileManager" (часть 5) - GetFileList
- Модуль "Пункты меню" (часть 9) - DeleteNodeItem
- Модуль "Справочник" (часть 29) - EditGroup
- Модуль "Flash_Patching" (часть 11) - ApplyPatchTo_RainbowPOG_CG1
- Модуль "Терминал" (часть 1) - определение переменных и типов данных
- Модуль "Пункты меню" (часть 57) - MMAEdit_GetNodeType
