Блог Александра Божко
Архивы
Рубрики

практический пример

Предыдущий пост вызвал довольно оживлённую дискуссию относительно оптимальности приведенного решения. Напомню, что ставилась задача в отфильтрованном гриде необходимо некоторым образом модифицировать все записи. Действительно, приведенный вариант был далеко не оптимальный. С подачи резидента DevExpress (Константин, спасибо) я набросал еще несколько вариантов решения данной задачи.

Наиболее приемлемым мне показался этот:

if cxDBGridDBTableView1Approved.Filtered then
  cxDBGridDBTableView1Approved.Filtered:= False;

qryTiming.filter:= cxDBGridDBTableView1.DataController.Filter.FilterText;
 qryTiming.DisableControls;
 qryTiming.filtered:= True;
 qryTiming.first;

 while not  qryTiming.Eof do
 begin
   qryTiming.Edit;
   qryTimingApproved.AsInteger:= Approving;
   qryTiming.Post;
   qryTiming.Next;
 end;

qryTiming.filtered:= False;
qryTiming.EnableControls;

Обратите внимание на то, если изменяемое поле присутствует в условии фильтрации, то фильтр по нему сбрасывается. В противном случае, проход через все записи в наборе данных не будет обработан корректно. Так устроен  DataSet. Читать далее

imageup.ru - хостинг для изображенийВ прошлой части рассказа, я описал суть проблемы. Напомню вкратце, что необходимо создать трехзвенку, с MS Access в качестве СУБД и сервером приложений, написанном на Delphi. При этом клиенты должны разрабатываться и в Delphi (descktop client) и в .Net среде (ASP .Net application).

Все оказалось не совсем замечательно. Все официальные источники утверждают, что Delphi Prism может работать с DataSnap серверами. И это так. Но есть некоторые ограничения.

Как выяснилось, .Net приложения могут использовать только методы DataSnap. Вот, как описывает создание клиента в Delphi с помощью метода Боб Сварт:

Читать далее

В прошлой части “Заметок на полях” я пожаловался на то, что мне так и не удалось создать “правильный” заголовок окна с помощью DevExpress.

Оказывается, иногда полезно читать объемные руководства (для ExpressBars™ Suite это более 2000 страниц) . Там все доступно написано.

  • Добавьте модуль dxRibbonForm в секцию ‘Uses’;
  • Наследуйте вашу форму от TdxRibbonForm;
  • Перетащите TdxRibbon и, если необходимо, TdxRibbonStatusBar на форму и настройте их так, как требуется;
  • Активируйте для Ribbon опцию SupportNonClientDrawing.

Читать далее

Совершенно недавно в одном из форумов мне довелось прочесть мысль о том, что DevExpress является едва ли не стандартом в разработки пользовательских интерфейсов Delphi приложений. Возможно это и преувеличение, но, тем не менее, нельзя отрицать популярность этого продукта. Однако, структура классов DevExpress весьма сложная и, зачастую многие классы сильно отличаются по строению от аналогичных VCL классов. Классический пример cxGrid. Если, скажем,TGridEh имеет схожее строение с классическим TDBGrid, то TcxGrid устроен абсолютно иначе. Как следствие, разработчик, столкнувшийся впервые с TcxGrid, будет испытывать некоторые затруднения.

Читать далее

Данный пост не вошел в основной список статей Роберта Лава, посвященных использованию RTTI в Delphi 2010. Здесь просто приводятся ссылки на примеры, разработанные автором и даются некоторые пояснения к ним. Дальнейший рассказ об особенностях нового RTTI будет строится непосредственно на этих примерах.

(примечание переводчика)

Читать далее

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика