Модуль "Справочник" (часть 6) - ReadPhoneBook

Рубрика: Исходники
Среда, 21 апреля 2010 г.
Просмотров: 154
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
procedure TfrmAT_PhoneBook.ReadPhoneBook;
var
  res: boolean;
  frmProgress: TfrmProgress;
  i, j: integer;
begin
res:= false;
frmAT_PhoneBook.CreateListView(iPhoneBookType);
Logger('*** Читаю справочник');
case iPhoneBookType of
  0, 1: begin

          Logger('*** iPhoneBookType = ' + IntToStr(iPhoneBookType));
          Logger('*** Получение параметров справочника');
          res:= GetPhoneBookParams(xPhoneBookParam);
          if res then begin
                        if xMembers <> nil then xMembers:= nil;
                        SetLength(xMembers, xPhoneBookParam.TotalRec);
                      end;
        end;
  2, 3: begin
          res:= GetPhoneBookParamsEx(xPhoneBookParamEx);
          if res then begin
                        if xMembersEx <> nil then xMembersEx:= nil;
                        SetLength(xMembersEx, xPhoneBookParamEx.TotalRec);
                        //FillMemory(@xMembersEx, Sizeof(TAbonentEx)*xPhoneBookParamEx.TotalRec, 0);
                        for i:= 0 to xPhoneBookParamEx.TotalRec-1 do
                          begin
                            xMembersEx[i].Storage:= 'N';
                            xMembersEx[i].Index:= MaxInt;
                            for j:=1 to 13 do begin
                                                xMembersEx[i].Records[j].SubIndex:= MaxInt;
                                                xMembersEx[i].Records[j].iType:= 255;
                                              end;
                          end;
                      end;
        end;  
end;
 if res then
   begin
     //CreateListView(iPhoneBookType);
     frmProgress:= TfrmProgress.Create(Self);
     frmProgress.AdvProgressBar2.Visible:= false;
     frmProgress.AdvProgressBar1.Value:= 0;
     frmProgress.Show;
     //##Application.ProcessMessages;
     frmProgress.Update;
     ShowLabels(255);
     ShowLabels(iPhoneBookType);
     try
       case iPhoneBookType of
         0, 1 : begin
                  Logger('*** Получение списка абонентов ***');
                  res:= GetPhoneBookEntries(xMembers, frmProgress);
                  if res then FillListAbonents(RzListView1, xMembers, 255);
                  FillTreeCategory(RzTreeView1, xCategory);
                end;
//         2 : begin
//
//             end;
         2,3: begin
                  res:= GetPhoneBookEntriesEx(xMembersEx, frmProgress);
                  if res then FillListAbonentsEx(RzListView1, xMembersEx, 255);
                  FillTreeCategory(RzTreeView1, xCategory);
            end;
       end;                  
     finally
       frmProgress.Free;
     end;
  end;
end;
Rambler's Top100