Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress

Модерирует : ShIvADeSt

ShIvADeSt (29-01-2007 03:17): идем сюда
http://forum.ru-board.com/topic.cgi?forum=33&topic=7918
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

golkanavt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DevExpress

Обмен опытом, обсуждение нюансов и решение проблем возникающих при использовании библиотеки компонент Developer Express




 
Сами прирученные компоненты частенько приходят на водопой сюда

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 10:42 08-10-2003 | Исправлено: golkanavt, 15:41 08-09-2006
makz

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vcrank
Ага, девэкс бесплатный .

Всего записей: 1034 | Зарегистр. 17-05-2003 | Отправлено: 13:05 12-07-2006
vcrank

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
makz
По крайне мере известно, где есть фришный набор дев

Всего записей: 1067 | Зарегистр. 24-10-2005 | Отправлено: 13:52 12-07-2006
makz

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vcrank
ну так и fly рядом лежит.

Всего записей: 1034 | Зарегистр. 17-05-2003 | Отправлено: 03:41 13-07-2006
IgorXI



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как узнать какому объекту TcxGrid принадлежит TcxLevel, имея ссылку на компонент TcxLevel?

Всего записей: 126 | Зарегистр. 16-09-2003 | Отправлено: 08:30 14-07-2006
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IgorXI
Если речь о TcxGridLevel, то через property GridView привязка на View.
Через property Control привязка к cxGrid.

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 10:05 14-07-2006
IgorXI



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex47Спасибо.
Всё-таки сумел получить доступ через GetParentComponent()

Всего записей: 126 | Зарегистр. 16-09-2003 | Отправлено: 10:14 14-07-2006
gorwul

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как программно реализовать добавление условия (имя_поля IS NULL) в фильтр GridView.  

Всего записей: 155 | Зарегистр. 16-04-2003 | Отправлено: 11:49 14-07-2006 | Исправлено: gorwul, 11:49 14-07-2006
golkanavt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как программно реализовать добавление условия (имя_поля IS NULL) в фильтр GridView.


Код:
 
var
  S, FilterText: string;
  AItem: TcxCustomGridTableItem;
  AItemList: TcxFilterCriteriaItemList;
.....
                  try
                    DataController.Filter.BeginUpdate;
                    AItemList := DataController.Filter.Root.AddItemList(fboOr);
                    AItemList.AddItem(AItem, foLike, FilterText, s);
 
                    AItem := Items[GetColumnByFieldName('YourFieldName').Index];
                    FilterText := '%' + s + '%';
                    AItemList.AddItem(AItem, foLike, FilterText, s);
                  finally
                    DataController.Filter.Active := true;
                    DataController.Filter.EndUpdate;
                  end;
 

в методе AddItem с помощью 2-го параметра рулится разновидность оператора:

Код:
 
TcxFilterOperatorKind = (foEqual, foNotEqual, foLess, foLessEqual,
    foGreater, foGreaterEqual, foLike, foNotLike, foBetween, foNotBetween,
    foInList, foNotInList,
    foYesterday, foToday, foTomorrow,
    foLastWeek, foLastMonth, foLastYear,  
    foThisWeek, foThisMonth, foThisYear,
    foNextWeek, foNextMonth, foNextYear);
 

для условия IS NULL - оператор cxSFilterOperatorIsNull

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 12:04 14-07-2006 | Исправлено: golkanavt, 12:10 14-07-2006
gorwul

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
golkanavt
 
Спасибо за подробности.
Использование cxFilterOperatorKind - как раз и раньше было понятно,
не понятно как юзать оператор cxSFilterOperatorIsNull !

Всего записей: 155 | Зарегистр. 16-04-2003 | Отправлено: 12:52 14-07-2006
golkanavt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gorwul

Цитата:
не понятно как юзать оператор cxSFilterOperatorIsNull !

Элементарно, Ватсон:

Код:
 
     AItemList.AddItem(AItem, foEqual, Null, '');
 


Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 14:43 15-07-2006
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот может кому нужно Батник для компиляции DevExpress для BDS2006 и Delphi 7.
_http://rapidshare.de/files/26942798/Bat.rar.html
Писал сам все работает. Распаковать нужно в корень с папками компонентов Дева.  
После прописать пути и Component / install pakadge / и выбираем все пакеты начинающиеся на dcl*.bpl.Правда есть маленькое но в BDS2006 при опции RUNTIME может потребовать перекомпиляции вручную некоторых пакетов. У меня на разных машинах разные пакеты требовало.
 
 

Всего записей: 558 | Зарегистр. 05-04-2006 | Отправлено: 11:06 18-07-2006 | Исправлено: RedPromo, 14:56 25-07-2006
vshersh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RedPromo
А зачем изобретать велосипед?
Есть отличный инсталлях от feandy!
Всем рекомендую юзать именно его!

Всего записей: 506 | Зарегистр. 12-01-2006 | Отправлено: 11:28 18-07-2006
vcrank

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RedPromo
Спасибо. Чуть позже протестирую. Очень утомительно было ручками ставить на BDS2006. У меня какая-то порезанная версия Delphi. Исталлятор её не видел

Всего записей: 1067 | Зарегистр. 24-10-2005 | Отправлено: 12:57 18-07-2006
Lenoks

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пожалуйста, подскажите кто знает:
Задача следующая:  
Я хочу задать пользовательскую прорисовку заголовка, так как все существующие стили меня не устраивают (хочу использовать стиль Flat, но при этом чтобы заголовки столбцов остались плоскими (в стиле UltraFlat)). Кроме того задаю свою иконку для сортировки и ХОЧУ ЗАДАТЬ СОБСТВЕННУЮ ИКОНКУ ДЛЯ ФИЛЬТРАЦИИ (при наведении курсора мыши на любой заголовок столбца в верхнем правом углу отображается иконка фильтрации, при покидании заголовка исчезает. Если к столбцу применен фильтр, то иконка будет видна, до тех пор пока по данному столбцу фильтр не отменят).  
Делаю следующее:  
 
private void advBandedGridView1_CustomDrawColumnHeader(object sender, DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e)
        {
            if (e.Column != null)
            {
                Rectangle r = e.Info.CaptionRect;
                StringFormat sf = new StringFormat();
                sf.Trimming = StringTrimming.EllipsisCharacter;
                sf.Alignment = StringAlignment.Center;
                sf.LineAlignment = StringAlignment.Center;
                e.Info.Caption = "";
                Rectangle sortBounds = Rectangle.Empty;
                Rectangle filterBounds = Rectangle.Empty;
//Прорисовываю иконки для фильтрации                
                try
                {
                    UpdateInnerElements(e, false, ref sortBounds);
                }
                finally
                {
                    UpdateInnerElements(e, true, ref sortBounds);
                }
                 
                if (!sortBounds.IsEmpty)
                {
                    if (e.Column.SortOrder == ColumnSortOrder.None) return;
                    int i = 1;
                    if (e.Column.SortOrder == ColumnSortOrder.Descending) i = 0;
                    e.Graphics.DrawImageUnscaled(SortingGlyphsImageList.Images[i], r.X - 5 + (e.Column.Width - SortingGlyphsImageList.ImageSize.Width), r.Y + (r.Height - SortingGlyphsImageList.ImageSize.Height));
                }
//Если к колонке применен фильтр, тогда иконка отображается
                if (e.Column.FilterInfo.Type != DevExpress.XtraGrid.Columns.ColumnFilterType.None)
                        e.Graphics.DrawImageUnscaled(SortingGlyphsImageList.Images[2], r.X - 5 + (e.Column.Width - SortingGlyphsImageList.ImageSize.Width), r.Y);
                }    
                    e.Graphics.DrawString(e.Column.Caption, e.Appearance.Font, Brushes.White, new Rectangle(r.X - 3, r.Y - 2, e.Column.Width, r.Height + 2), sf);
                    e.Graphics.DrawRectangle(Pens.White, new Rectangle(r.X - 5, r.Y - 2, e.Column.Width, r.Height + 4));
                }
                e.Handled = true;
 
            }
 
        private void UpdateInnerElements(DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e, bool restore, ref Rectangle sortBounds)
        {
            foreach (DevExpress.Utils.Drawing.DrawElementInfo item in e.Info.InnerElements)
                if (item.ElementPainter is DevExpress.Utils.Drawing.SortedShapeObjectPainter)
                    if (restore)
                        item.ElementInfo.Bounds = sortBounds;
                    else
                    {
                        sortBounds = item.ElementInfo.Bounds;
                        item.ElementInfo.Bounds = Rectangle.Empty;
                    }
        }
 
 
 
Как сделать, чтобы иконка фильтрации появлялась/исчезала при наведении/покидании курсора мыши на заголовок столбца?  

Всего записей: 1 | Зарегистр. 20-07-2006 | Отправлено: 10:47 20-07-2006
ArtemiyUO

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может быть обрабатывать онмоуземув, потом делать хиттест на предмет нахождения мыши в заголовке столбца ну и вызывать апдейт (перерисовку) грида, а если есть возможность более тонкую - например только столбца или заголовка.

Всего записей: 539 | Зарегистр. 12-12-2005 | Отправлено: 14:58 20-07-2006
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Даю рабочую процедуру отрисовки заголовка колонки с вертикальным текстом для QGrid5. Отрисовываются кнопки сортировки и фильтра (В Knowledge Base на сайте DevExp есть вариант, но без поддержки сортировки). Процедуру можно вызывать в обработчике CustomDrawHeader.
 
procedure DrawGridHeaderVerticalCaption(ACanvas: TcxCanvas; AViewInfo:
    TcxGridColumnHeaderViewInfo; var ADone: Boolean);
var
  Size: TSize;
  OldFont: TLogFont;
  LogFont: TLogFont;
  ARect: TRect;
  I: Integer;
  AClipRegion: TcxRegion;
begin
  with AViewInfo do
  begin
    GetObject(ACanvas.Font.Handle, SizeOf(OldFont), @OldFont);
    LogFont := OldFont;
    with LogFont do
    begin
      lfEscapement := 900;
      lfOrientation := lfEscapement;
      lfOutPrecision := OUT_TT_ONLY_PRECIS;
    end;
    ACanvas.Font.Handle := CreateFontIndirect(LogFont);
    GetTextExtentPoint32(ACanvas.Handle, PChar(Text), Length(Text), Size);
    ARect := Bounds;
    if Size.cx > ARect.Bottom - ARect.Top then
    begin
      ACanvas.Font.Handle := CreateFontIndirect(OldFont);
      Exit;
    end;
    LookAndFeelPainter.DrawHeader(ACanvas, Bounds, TextAreaBounds,
      Neighbors, Borders, cxbsNormal, taCenter, vaCenter, False, False, '',
      ACanvas.Font, clNone, Params.Color);
    with TextAreaBounds do
      if Left < Right then
        ACanvas.Canvas.TextRect(TextAreaBounds,
          (Left + Right - Size.cy) div 2,
          (Top + Bottom + Size.cx) div 2,
          Column.Caption
        );
    AClipRegion := ACanvas.GetClipRegion;
    try
      for i := 0 to AreaViewInfoCount - 1 do
        AreaViewInfos[i].Paint;
    finally
      ACanvas.SetClipRegion(AClipRegion, roSet);
    end;
    ADone := True;
  end;
end;

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 15:01 20-07-2006 | Исправлено: Alex47, 09:38 21-07-2006
xitsmex



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуй, ALL!
Есть вопрос: никто не подружил DevExpress хоть малость с UNICODE, а то имеется проблема, описанная здесь: http://forum.ru-board.com/postings.cgi?action=edit&forum=33&topic=6679&postno=597, может, кто-то уже сталкивался?

Всего записей: 58 | Зарегистр. 31-08-2005 | Отправлено: 10:49 22-07-2006
unfreqient



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня такая засада: не могу добраться до свойства GroupByBox у Grid4, конкретно хотелось бы заменить надпись "Drag a column header here to group by that column" на аналогичную по смыслу на русском. Также не понимаю, как русифицировать форму фильтра. Может у кого получилось?

Всего записей: 104 | Зарегистр. 20-07-2006 | Отправлено: 08:57 24-07-2006
yuish

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unfreqient
 
вариантов два, или ставишь девок от фенди с включенной галочкой Русские ресурсы, или находишь cxGridStrs.pas - переводишь там то что надо, перекомпелишь, и заменяешь то что вышло в тенх местах где лежал гридовские бпл и дсу

Всего записей: 218 | Зарегистр. 10-02-2003 | Отправлено: 09:44 24-07-2006
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xitsmex

Цитата:
Есть вопрос: никто не подружил DevExpress хоть малость с UNICODE

В конце прошлого года (19-21 декабря) Eugene Goldberg в новостной группе  
devexpress.public.vcl.quantumgrid5 предлагал протестировать его вариант UNICODE поддержки для cxGrid5:
"RAR archive file contains simple Delphi application which connects to FireBird 1.5 database (embedded firebird DB) to test Unicode entry/display/storage with QG5. I tested this on Windows XP and Windows Server 2003, the database currently contains unicode text on Divehi.
Any testing results would be greatly appreciated.  
The inner editor is implemented as a descentant class, but for cxGrid i have modified the original code.
This inner editor class can display both non-Unicode text and Unicode stored as UTF-8. Other storage formats can be added easily...
Even without the database, you should be able to input Unicode in  not-dbaware TcxTextEdit."
 
Я скачал его архивы, запустил exe, покликал мышкой, вроде работает...
Советую посмотреть внимательнее, можно попробовать связаться с автором, email российский: egold@mts-nn.ru  
 

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 10:00 24-07-2006 | Исправлено: Alex47, 10:10 24-07-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress
ShIvADeSt (29-01-2007 03:17): идем сюда
http://forum.ru-board.com/topic.cgi?forum=33&topic=7918


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru