Модуль "Мое меню" (часть 15) - DeleteMyMenu

Рубрика: Исходники
Среда, 21 апреля 2010 г.
Просмотров: 189
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
procedure TfrmP2K_MyMenu.DeleteMyMenu;
var
  idx: integer;
  i: integer;
  xBuffer, xBuffer2: pbytearray;
  rec: string;
  res: boolean;
  xValue: byte;
  iBit: byte;
  Index: integer;

begin
  if spSkinListView1.SelCount <=0 then exit;
  try
  Screen.Cursor:= crHourGlass;
  idx:= StrToInt(spSkinListView1.Selected.Caption)+1;
  //** for i:=1 to 99 do if  (AvailMenu[i] = xMyMenu[idx].Button) then AvailMenu[i]:= 255;
  //** xValue:=  xMyMenu[idx].SeemLinkNum;
  xBuffer:= AllocMem(MY_MENU_SIZE);
  xBuffer2:= AllocMem(MY_MENU_LINK_SIZE);
  try
    FillMemory(xBuffer, MY_MENU_SIZE, $00);
    FillMemory(xBuffer2, MY_MENU_LINK_SIZE, $00);
    //** xMyMenu[idx].SeemLinkNum:= xValue;
    //** xMyMenuLink[xMyMenu[idx].SeemLinkNum+1].LinkLength:= 0;
    //** xMyMenu[idx].LinkLength:= 0;
    //** if xMyMenu[idx].mType = 0 then xMyMenu[idx].LinkLength:= xMyMenuLink[xMyMenu[idx].SeemLinkNum+1].LinkLength;
    //** xMyMenu[idx].SeemLinkNum:= $FF;
    rec:= IntToHex(idx, 4);
    res:= P2K.WriteSeem('0002', rec, '0', MY_MENU_SIZE, xBuffer);
    if res then spSkinListView1.Selected.Destroy;
    if xMyMenu[idx].mType = 0 then begin
                                     //** rec:= IntToHex(xMyMenu[idx].SeemLinkNum+1, 4);
                                     //** res:= P2K.WriteSeem('017a', rec, '0', MY_MENU_LINK_SIZE, xBuffer2);
                                   end;
  finally
    FreeMem(xBUffer);
    FreeMem(xBUffer2);
  end;
  xBuffer:= AllocMem(14);
  try
    FillMemory(xBuffer, 14, 0);
    //** Index:= xMyMenu[idx].Index div 8;  //какой оффсет проверять
    xValue:= SEEM_SHORTCUT_SLOTS[Index];
    //** iBit:= xMyMenu[idx].Index mod 8; //какой бит проверять
    iBit:= Round(power(2, iBit));
    res:= false;
    if res then xValue:= xValue or iBit else xValue:= xValue and not iBit;
    SEEM_SHORTCUT_SLOTS[Index]:= xValue;
    for i:= 0 to 13 do  xBuffer[i]:= SEEM_SHORTCUT_SLOTS[i];
    P2K.WriteSeem('0157', '0001', '0', 14, xBuffer);
  finally
    FreeMem(xBuffer);
  end;
  xMyMenu[idx].IsVisible:= false;
  xMyMenu[idx].mType:= $FF;
  //** xMyMenu[idx].Index:= $FF;
  //** xMyMenu[idx].MenuType:= $FF;
  //** xMyMenu[idx].Button:= $FF;
  //** xMyMenu[idx].VoiceRecord:= $FF;
  //** xMyMenu[idx].JavaItem:= $FFFF;
  //** xMyMenu[idx].CommandID:= $FFFF;
  //** xMyMenu[idx].LinkLength:= $FF;
  //** xMyMenu[idx].SeemLinkNum:= $FF;
  //** xMyMenu[idx].Name:= 'FFFFFFFFFFFFFFFF';
  //** xMyMenu[idx].Trash_03:= $FF;
  //** xMyMenu[idx].Trash_04:= $FF;
  //** xMyMenu[idx].Trash_05:= $FF;
  //** xMyMenu[idx].Trash_06:= $FF;
  //** xMyMenuLink[xMyMenu[idx].SeemLinkNum+1].Index:= $FF;
  //** xMyMenuLink[xMyMenu[idx].SeemLinkNum+1].Trash01:= $FF;
  //** xMyMenuLink[xMyMenu[idx].SeemLinkNum+1].LinkLength:= $FF;
  //** xMyMenuLink[xMyMenu[idx].SeemLinkNum+1].LinkName:= 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF';
  finally
    Screen.Cursor:= crDefault;
  end;                  
end;
Rambler's Top100