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

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

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

ShIvADeSt (31-12-2009 04:49): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=10884  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121

   

golkanavt



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

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




 
Сами прирученные компоненты частенько приходят на водопой сюда
 
DLL со скинами из библиотеки dxSkins, автор Ziltoid Подробнее... линк обновлен
Продолжение, Первая часть, вторая часть

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 10:31 07-02-2009 | Исправлено: vladman, 14:36 24-10-2009
X11



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

Цитата:
fcxGrid.MyViewName.ViewData.RecordCount;

Но в другом модуле (есл на форме лежит собственно грид), то тот код нормально работает
 
Добавлено:
Извиняюсь, беру свои слова обратно. Стормозил

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 14:43 28-08-2009
sly konrad



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

Цитата:
А что нужно сделать в OnCloseUp?  

Ситуация простая: при выборе значения из всплывающего списка нужно заполнить пару соседних столбцов соостветствующими данными справочника. Например, в поле "Сотрудник" выбираем из списка "Иванов", в поля "Департамент" и "Отдел" заносим значения из справочника сотрудников по ID выбранного сотрудника.  
 
vladman

Цитата:
Но вот обработчики Properties.LookupComboBox перекрывают обработчики RepositoryItem

Спасибо. Не знал про такую возможность. Будем пробовать.

Всего записей: 5 | Зарегистр. 24-04-2007 | Отправлено: 15:01 28-08-2009 | Исправлено: sly konrad, 15:03 28-08-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть cxGrid, не привязанный к таблице базы.
 
Как присвоить колонку этого грида, переменной?

Код:
 
  colPhones: TcxGridColumn;
 
colPhones := TcxGridDBTableView(fcxGrid.ActiveView).какой_здесь_метод_можно_использовать
 
 

цикл не очень подходит, это не оптимально, т.к. таких переменных около 10 и колонок в гриде тоже около 10
 
Было бы что-то GetColumnByName(ColumnName: String):TcxGridColumn - было бы замечательно.
Чтобы можно было бы применить конструкцию:
colPhones := TcxGridDBTableView(fcxGrid.ActiveView).GetColumnByName(colPhones.name);
 
Что посоветуете?


----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 16:21 28-08-2009 | Исправлено: X11, 16:22 28-08-2009
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
X11, а присваивать переменной надо в зависимостиь от имени столбца?
 
Еще: в GetColumnByFieldName(), которая не подходит вам по условию, используют цикл.

Всего записей: 276 | Зарегистр. 23-01-2005 | Отправлено: 16:48 28-08-2009
afiget



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

Цитата:
при выборе значения из всплывающего списка нужно заполнить пару соседних столбцов соостветствующими данными справочника.

Тогда именно так, как написал vladman.
X11
TcxCustomGridTableView.FindItemByName ?

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 17:57 28-08-2009
gyani

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день, подскажите как в cxGrid сделать  чтобы при сортировке текст в заголовке столбца не смещался? (текст заголовка размещен по центру )

Всего записей: 10 | Зарегистр. 28-08-2009 | Отправлено: 12:14 29-08-2009 | Исправлено: gyani, 12:18 29-08-2009
vladman

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

Цитата:
как в cxGrid сделать  чтобы при сортировке текст в заголовке столбца не смещался?


Код:
procedure <YourForm>.<YourcxGridDBTableView>CustomDrawColumnHeader(Sender: TcxGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridColumnHeaderViewInfo; var ADone: Boolean);
var
  vFilterInfo: TcxGridColumnHeaderFilterButtonViewInfo;
  i: Integer;
  vSortingMarkRect:TRect;
begin
  AViewInfo.LookAndFeelPainter.DrawHeader(ACanvas, AViewInfo.Bounds, AViewInfo.TextAreaBounds, AViewInfo.Neighbors,
    AViewInfo.Borders, AViewInfo.ButtonState, AViewInfo.AlignmentHorz, AViewInfo.AlignmentVert, AViewInfo.MultiLine,
    False, '', AViewInfo.Params.Font, AViewInfo.Params.TextColor, AViewInfo.Params.Color);
  ACanvas.DrawTexT(AViewInfo.Text, AViewInfo.Bounds, taCenter, vaCenter, False, False);
  for i := 0 to AViewInfo.AreaViewInfoCount -1 do
    if AViewInfo.AreaViewInfos[i] is TcxGridColumnHeaderFilterButtonViewInfo then
      begin
        vFilterInfo := TcxGridColumnHeaderFilterButtonViewInfo(AViewInfo.AreaViewInfos[i]);
        Break;
      end;
  vFilterInfo.Paint(ACanvas);
  vSortingMarkRect := vFilterInfo.Bounds;
  if vFilterInfo.Visible then
    vSortingMarkRect.Left := vSortingMarkRect.Left - vFilterInfo.Width * 2;
  if AViewInfo.Column.SortOrder <> soNone then
    Sender.Painter.LookAndFeelPainter.DrawSortingMark(ACanvas, vSortingMarkRect, AViewInfo.Column.SortOrder = soAscending);
  ADone := True;
end;

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 13:22 29-08-2009
Granmer



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите, пожалуйста, как в рантайме создавать и размещать TdxLayoutItem в TdxLayoutControl? Пробовал просто создавать экземпляр TdxLayoutItem, присваить его паренту корневую группу - ошибка выходит. Может кто сталкивался?
 
Добавлено:
Вопрос снят. Нашел в справке:
Цитата:
To create an item at runtime, you should use the CreateItem or CreateItemForControl methods of a group (or the CreateItem or CreateItemForControl methods of the Layout Control).

Всего записей: 236 | Зарегистр. 20-08-2003 | Отправлено: 13:31 29-08-2009
gyani

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladman
спасибо за ответ, но что-то не работает, хотя я думаю это не критично сейчас Подскажите где можно почитать для начинающих по работе с БД через cxGrid в связке с Fib

Всего записей: 10 | Зарегистр. 28-08-2009 | Отправлено: 22:22 29-08-2009 | Исправлено: gyani, 22:35 29-08-2009
vladman

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

Цитата:
но что-то не работает

А что не работает?

Цитата:
Подскажите где можно почитать для начинающих

Работа с БД через cxGrid мало зависит от компонента доступа к данным.
Читайте "FIBPlus 6.9.6 Developers Guide.pdf" для работы с FIBPlus,  
и смотрите документацию и примеры поставляемые DevExpress - этого всего вполне достаточно для работы, и не только начинающему. Еще у DevExpress, наверное, самый лучший Support из вендоров 3rd party componrents. Так что заглядывайте и туда - ссылка в шапке, как раз подправил на корректную.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 23:29 29-08-2009 | Исправлено: vladman, 23:37 29-08-2009
gyani

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladman не работает, всмысле текст продолжает смещатся, может там нужны какието дополнителеые элементы на форме или настройки?  
 
подскажите по fib, если poRefreshAfterPost=True должны ли обновлятся данные в гриде после добавления записи? (autocomit=true)

Всего записей: 10 | Зарегистр. 28-08-2009 | Отправлено: 00:50 30-08-2009
DreamKHV



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gyani, не должны - по умоланию фибы кешируют записи. Если у записи заполнено ключевое поле, то можно использовать DataSet.Refresh. Если записи пофетчены, то DataSet.CloseOpen(false), но метод весьма не практичный.
 
Т.к. автоинкремент заполняется на сервере, а в приложении поле пустует, то обновляющий запрос не выполняется.

Всего записей: 21 | Зарегистр. 19-03-2009 | Отправлено: 01:06 30-08-2009 | Исправлено: DreamKHV, 01:17 30-08-2009
vladman

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

Цитата:
не работает, всмысле текст продолжает смещатся,

Тогда давайте ваш пример поглядим чего не так.
Т
Цитата:
подскажите по fib...должны ли обновлятся данные в гриде

Смотря что вы понимаете под обновлением данных.
Добавленная запись в гриде появится, а вот обновление остальных записей не произойдет.
Для обновления всей выборки используйте метод FullRefresh.
Но, такого рода вопросы нужно спрашивать в другой ветке, так как вопрос не относится к DevExpress.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 13:15 30-08-2009
gyani

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

настроил AutoUpdateOption теперь поле само обновляется(поле autoinc).
 
подскажите как выровнять текст в ячейке по центру?
 
Добавлено:
разобрался, оказывается нужно полю присвоить значение наприме TextEdit а там уже появится выранивание

Всего записей: 10 | Зарегистр. 28-08-2009 | Отправлено: 22:55 30-08-2009
Martian2



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, подскажите.  
Наблюдаются дикие тормоза при пользовании компонентами DevExpress на стадии разработки.
 Инструмент VS 2008.   OC Win Vista 64. ОЗУ 4Гб. Проц Core2 Duo.
Долгий отклик на простейшие действия в дизайнере, перелистывании вкладок и т. д. Пожирается вся память. VS – 1.5Гб, Кэш 2Гб. Все равно все тормозит по страшному, испробовано на других системах c ОЗУ 8Гб, Win ХР, Win 7 с более мощными 4х ядерным процессорами, мощнейшем видео   -  все по последнему слову техники. Результат тот же.  
Как с этим бороться? Что за хрень? Ваши советы.

Всего записей: 3 | Зарегистр. 11-08-2009 | Отправлено: 09:11 31-08-2009
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Martian2, для начала попробуйте выяснить на какие компоненты наблюдается такая реакция. Начните новый проект, положите на форму, например, TreeList, посмотрите скорость работы.

Всего записей: 276 | Зарегистр. 23-01-2005 | Отправлено: 12:16 31-08-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Такой вот неприятный момент обнаружил в dxBarManager. Есть панель типа главное меню. Создал там структуру пунктов, включая разделители. Но я создал один разделитель и "растыкал" его по всем пунктам меню дабы не создавать десяток разделителей. Иначе все эти 10 разделителей видны на закладке Commands в dxBarManager. Решил удалить из меню один разделитесь. Получается так, что, выделяя один разделитель в меню... выделяются и все. Нажимаю Delete - удаляются все разделители из всех пунктов меню. Можно что-то придумать, чтобы и не дублировать десяток разделителей, и нормально манипулировать (удалять в частности) только выделенный разделитель?

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 14:17 31-08-2009
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
X11, в dxBarManager'е разделители между меню не являются отдельными элементами, а скорее, свойствами существующих. То есть аналогии с MainMen, PopupMenu нет.
 
Добавляются разделители с помощью контекстного меню на выбранном элементе, пункт "Begin a group".

Всего записей: 276 | Зарегистр. 23-01-2005 | Отправлено: 14:27 31-08-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А ещё вопрос по dxBarManager. На закладке Commans есть 2 категории. Можно ли как-то перемещать не по одной команде, а выделенные?
 
И ещё 2 замечания по dxBarManager.  
1. Жаль, что dxBarManager не может запоминать своё расположение и размеры в дизайне (в IDE).
2. Жаль, что dxBarManager нельзя растягивать по ширине.  
Такие функциональные компоненты, а такие банальные ограничения.
 
Добавлено:
korobovmax, может ты меня не понял, вот на снимке я подчеркнул:
 
   
 
Я имел ввиду Seperetor (разделитель) не в dxBarManager, а в самой панели (в главном меню)

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 14:27 31-08-2009
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
X11, перемещать нельзя. Они сделали также, как сделано в том месте откуда слизывали (мс офис)
 
По 1 и 2 поясните. Имеется ввиду панели, а не сам менеджер?

Всего записей: 276 | Зарегистр. 23-01-2005 | Отправлено: 14:31 31-08-2009
   

Страницы: 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 3)
ShIvADeSt (31-12-2009 04:49): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=10884


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru