Модуль "OtherFeatures" (часть 4) - SetFeatures

Рубрика: Исходники
Среда, 21 апреля 2010 г.
Просмотров: 154
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
procedure TfrmP2K_OtherFeatures.SetFeatures;
var
  idx: integer;
  sBool, sVal, st: string;
  sSeem, sRec: string;
  sBit: string;
  sOffset: string;
  i: integer;
  str: string;
  j : integer;
  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_text02;
  frmProgress.Show;
  Application.ProcessMessages;
  try
    for i:= 0 to High(xFunctList) do
      begin
        st:= xFunctList[i].title;
        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);
         xValue:= SeemData[0];
         iBit:= StrToInt(xFunctList[i].bit);
         //iBit:= Round(Intpower(2, iBit));
         res:= xFunctList[i].Checked;
         //**********
         xValue:= changebit(xValue, iBit, res);
         //**********
         //if res then xValue:= xValue or iBit
         //       else xValue:= xValue and not iBit;
         SeemData[0]:= xValue;
         P2K.WriteSeem(AnsiLowerCase(sSeem),
                       AnsiLowerCase(sRec),
                       AnsiLowerCase(sOffset),
                       1, SeemData);
        finally
         FreeMem(SeemData, $fa4);
         frmProgress.AdvProgressBar1.Value:= frmProgress.AdvProgressBar1.Value + 1;
         Application.ProcessMessages;
        end;
      end;
  finally
    frmProgress.Free;
    Screen.Cursor:= crDefault;
  end;
end;
Rambler's Top100