Модуль "OtherFeatures" (часть 3) - GetFeatures

Рубрика: Исходники
Среда, 21 апреля 2010 г.
Просмотров: 151
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
procedure TfrmP2K_OtherFeatures.GetFeatures;
var
  //olg: TOutlookGroup;
  i, j, k {, idx}: integer;
  //poi: POGLItem;
  sBool, sVal: string;
  sSeem, sRec: string;
  sBit: string;
  sOffset: string;
  //xSeem: PSeem;
  str: string;
  xValue: integer;
  res: boolean;
  iBit: byte;
  SeemData: pbyteArray;
  SeemLen: word;
  frmProgress: TfrmProgress;

begin
  if not Form1.IsP2KConnected then exit;
  Screen.Cursor:= crHourGlass;
  frmProgress:= TfrmProgress.Create(Self);
  frmProgress.AdvProgressBar2.Visible:= false;
  frmProgress.AdvProgressBar2.Value:= 0;
  frmProgress.AdvProgressBar2.MaxValue:= High(xFunctList) + 1;
  frmProgress.AdvProgressBar1.Value:= 0;
  frmProgress.AdvProgressBar1.MaxValue:= High(xFunctList) + 1;
  frmProgress.GradientLabel1.Caption:= p2k_of_pw_text01;
  frmProgress.Show;
  Application.ProcessMessages;
  try
  for i:=0 to High(xFunctList) do
    begin
      sSeem:= xFunctList[i].seem;
      sRec:= xFunctList[i].rec;
      sOffset:= xFunctList[i].offset;
      try
        SeemData:= AllocMem($fa4);
        FillMemory(SeemData, $fa4, 0);
        res:= P2K.ReadSeem(AnsiLowerCase(sSeem),
                    AnsiLowerCase(sRec),
                    AnsiLowerCase(sOffset),
                    1, SeemData, SeemLen);
        if res then
         begin
           xValue:= SeemData[0];
           iBit:= StrToInt(xFunctList[i].bit);
           iBit:= Round(intpower(2, iBit));
           res:= boolean(xValue and iBit);
           xFunctList[i].Checked:= res;
         end;
      finally
        FreeMem(SeemData, $fa4);
        frmProgress.AdvProgressBar1.Value:= frmProgress.AdvProgressBar1.Value + 1;
        Application.ProcessMessages;
      end;
    end;
    Form1.AdvGlowButton6.Enabled:= true;
    spSkinListBox1.OnListBoxClick(spSkinListBox1);
  finally
    frmProgress.Free;
    Screen.Cursor:= crDefault;
  end;
end;
Rambler's Top100