Небольшой класс на основе TRecHandler для обработки сообщений от далоговых окон. Есть возможность скроллинга

Автор:EpBuLaT
Дата:21.12.2005
Просмотров:2333
Скачиваний:773
Оценка:, Оценок - 2
Скачать (rar-файл; Размер - 4291)

Обсудить в форуме

Описание

а также вычисляемые поля и фильтр. Может быть кому-нибудь пригодится. А может кто ради интереса глянет, и скажет свое мнение, хотелось бы выслушать, плохо, хорошо ли.
В архиве есть примерчик с библиотекой ресурсов. Оговариваю что тестировал на версии 5,0,073, как будет работать на более нижних не могу сказать. Использутся только объекты, типа TRecHandler, TBFile, TArray.
Сразу скажу что я не писал с нуля, идею универсального окна, вычисляемых колонок, фильтра скроллинга я взял из примера Уварова А.Г. ОАО "НОСТА-БАНК", ну а технологию как релизовать в ООП из документации.

Текст примера

 import "dlgscrll.cls";

var {oper}, dlg;

class (TColumn) TMYCOL (title, f, w, a)
  InitTColumn(title, f, w, a);
  var p = tbfile("person");
  macro  Calculate(dbfile)
    p.rec.oper = dbfile.rec.oper;
    if (p.geteq) return p.rec.name end;
    return "";
  end;
end;

class (TDialog) TestDialog (panel, path, rc, cc)

  InitTDialog (panel, path, rc, cc);

  macro Filter(dbfile)
    return TRUE;
  end;

  this.Title = "Привет";
  this.statusline = "~Esc~ Выход";
  this.SetFile("document");
  this.AddColumn(TColumn("Номер", "numb_document", 10, "r"));
  this.AddColumn(TMYCOL("Опер", "oper", 20, "r"));
  this.AddColumn(TColumn("Счет", "account_payer", 16, "r"));
  this.AddColumn(TColumn("Счет", "account_receiver", 16, "r"));
  this.AddColumn(TColumn("Сумма", "sum", 16, "r"));

end;

dlg = TestDialog ("brow","test.lbr", 17, 78);

dlg.Run;

exit(1);