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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
По 1 и 2 поясните. Имеется ввиду панели, а не сам менеджер?

Нет, я писал именно о dxBarManager в режиме дизайна (в IDE).

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

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



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
X11, если создать один TdxSeparator и переносить в нужные места меню с помощью CTRL его копии не создаются. Можно так.
 
Тем не менее, рекомендую использовать Begin a group.
По ссылке пример как начинать группы программно: http://www.devexpress.com/Support/Center/KB/p/A1274.aspx
 
Добавлено:
X11, о каких размерах и расположении идет речь, если TdxBarManager - не визуальный компонент?

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



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

Цитата:
X11, если создать один TdxSeparator и переносить в нужные места меню с помощью CTRL его копии не создаются. Можно так.  

Вначале речь шла об удалении. Попробуй удалить из меню разделитеЛь. У меня удалились все разделители из всех пунктов.
 

Цитата:
X11, о каких размерах и расположении идет речь, если TdxBarManager - не визуальный компонент?

Речь идёт об обычных размерах и расположении. На форме лежит dxBarManager1. Щёлкни по нему дважды. Появится редактор с заголовком Customize
   
 
Вот это редактор жаль, что не запоминает своё расположение и размеры. А также нет возможности изменять ширину этого редактора.
 
Добавлено:
Забыл добавить:
D2007, Dev43.
 
Добавлено:

Цитата:
Тем не менее, рекомендую использовать Begin a group.
По ссылке пример как начинать группы программно:  

Как правило, главное меню окна проектируется в дизайне, а не в рантайме.
 
Добавлено:

Цитата:
X11, перемещать нельзя. Они сделали также, как сделано в том месте откуда слизывали (мс офис)
 

эх... в стареньком стандартном ActionList`е и то можно было ещё за царя Панька.
 
Добавлено:
А ещё на панели, созданной в TdxBarManager`е (НЕ в режиме главного меню) нет возможности добавить в дизайне разделитель кнопок.
Но решил эту проблему - может ещё компу пригодиться: создаём кнопку, Caption`у присваиваем вертикальную черту |, получается неплохо

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

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



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Про удаление: можно хватать разделитель и перетаскивать его на пустое от панелей место. Тогда он будет исчезать только из одного места. Программно - удалять у него из массива Links нужный элемент.
 
Про остальное: увы, не умеет.
 
 
 

Цитата:
Как правило, главное меню окна проектируется в дизайне, а не в рантайме.

 
Никто не мещает "начинать группы" в дизайне

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



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

Цитата:
Никто не мещает "начинать группы" в дизайне

Имеется ввиду закладка Groups?  
Добавил туда группу, к группе команды... что дальше делать... ума не приложу

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

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



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Просто вызвать контекстное меню у элемента, перед которым нужен разделитель. Внизу будет пункт Begin a Group. Добавится разделитель, которым, при этом, не будет доступен в списке элементов.

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос по барам.
Есть TdxBarManager, создана одна панель (dxBar). На панели кроме кнопок лежит TcxBarEditItem, у которого в properties установлено LookupComboBox.
 
Процедуру передаётся:
cxLookupCombobox: TcxLookupComboboxProperties;  
 
Как можно в этой  процедуре заставить этот LookupComboBox выпасть принудительно?
 
Добавлено:

Цитата:
Просто вызвать контекстное меню у элемента, перед которым нужен разделитель. Внизу будет пункт Begin a Group. Добавится разделитель, которым, при этом, не будет доступен в списке элементов.

Получилось. Но теперь не могу выделить этот разделитель в меню. Соответственно не могу переместить или удалить.
 
Уже даже открыл TdxBarManager, удалил оттуда все группы, а в меню разделитеЛь остался... удалить или переместить не могу, т.к. не получается его выделить мышкой.

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 15:38 31-08-2009 | Исправлено: X11, 15:43 31-08-2009
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Правильно.
Я же сказал, что он не является элементов меню, а скорее, свойством следующего за ним элемента.
Убирается разделитель также как и добавляется.

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



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

Цитата:
Вопрос по барам.
Есть TdxBarManager, создана одна панель (dxBar). На панели кроме кнопок лежит TcxBarEditItem, у которого в properties установлено LookupComboBox.
 
Процедуру передаётся:
cxLookupCombobox: TcxLookupComboboxProperties;  
 
Как можно в этой  процедуре заставить этот LookupComboBox выпасть принудительно?  

 
А ещё лучше, если бы в процедуру можно было передать этот cxLookupCombobox именно, как cxLookupCombobox, а не как TcxBarEditItem или TcxLookupComboboxProperties
 
Т.к. в процедуре нужно добраться и до EditValue тоже
 
Добавлено:
Не пойму, я чего-то нахимичил или так оно и есть.
На dxBar лежит TcxBarEditItem, у которого в properties установлено LookupComboBox.  
Фоку имеет cxGrid, находящийся на той же форме. Так вот, чтобы открыть LookupComboBox на панели, нужно дважды по нему щёлннуть.
ImmadiateDropDown установлено в True. D2007. Dev43

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

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

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

Цитата:
А ещё на панели, созданной в TdxBarManager`е (НЕ в режиме главного меню) нет возможности добавить в дизайне разделитель кнопок.
Но решил эту проблему - может ещё компу пригодиться: создаём кнопку, Caption`у присваиваем вертикальную черту |, получается неплох...
Но теперь не могу выделить этот разделитель в меню. Соответственно не могу переместить или удалить. Уже даже открыл TdxBarManager, удалил оттуда все группы, а в меню разделитеЛь остался... удалить или переместить не могу, т.к. не получается его выделить мышкой

Ну вы даете, ну видно же что функционал *старенького стандартного ActionList'а* не работает с dxBarManager'ом. Думаю, беглый просмотр раздела Customization Capabilities в справке по ExpresBars 6 потребовал бы меньше времени на эксперименты. А лучше же конечно начать с Fundamentals, Concept. А по поводу *вертикальную черту |, получается неплох* - намного лучшее решение вам уже предлагали - правый клик на элементе тулбара и выбираем Begin a Group, либо слегка потянуть нужный элемент после предполагаемого разделителя вправо и отпустить.
 
Добавлено:
X11

Цитата:
Как можно в этой  процедуре заставить этот LookupComboBox выпасть принудительно?..
Т.к. в процедуре нужно добраться и до EditValue тоже  

См. пример, в нем можно обратить внимание и на сепараторы и на разделители, кому как больше нравится .
_http://rapidshare.com/files/274018344/Unit76.rar.html  

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 00:28 01-09-2009
JohnSilver182



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

Цитата:
Я же сказал, что он не является элементов меню, а скорее, свойством следующего за ним элемента.
Убирается разделитель также как и добавляется.

 
Я тоже на разделителях  чуть не  рехнулся !!!

Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 07:45 01-09-2009
JohnSilver182



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кстати  если  FLoatDock  активен то у формы вырубается KEYPRIVIEW
и ЭТО плавает даже если  форму свернуть ((

Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 13:31 02-09-2009
svs123456789

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как проще всего русифицировать DevExpr_v45_09_07_2009 ?
ini или pas ?

Всего записей: 2934 | Зарегистр. 10-04-2003 | Отправлено: 12:19 03-09-2009
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем!!!
народ, подскажите, как отобразить иконку в cxGrid???
понятно что в событии OnCustomDrawCell... но как
есть ли у кого пример?

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 12:52 03-09-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть же заветная кнопочка "Версия для печати". А затем поиск....
Вот недавно обсуждали.
http://forum.ru-board.com/topic.cgi?forum=33&topic=10123&start=1240#20
 
Кстати в гугле есть примеры, как нарисовать в ячейке изображение....

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 14:20 03-09-2009
JohnSilver182



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

Цитата:
как отобразить иконку в cxGrid???  

 

Код:
 
ADone := true;
ACanvas.FillRect(AViewInfo.Bounds);
ACanvas.Brush.Color := clWhite;
 
if AViewInfo.GridRecord.DisplayTexts[cxGrid1DBTableView1Column_CFI.Index]<>'0'   then
 dm.cxImageListGrid.Draw(ACanvas.Canvas,AViewInfo.Bounds.Left+0,AViewInfo.Bounds.Top+0,0)
else
 dm.cxImageListGrid.Draw(ACanvas.Canvas,AViewInfo.Bounds.Left+0,AViewInfo.Bounds.Top+0,1);


2 ALL
Кстати для чего нужны три первые команды ?????

Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 15:17 03-09-2009 | Исправлено: JohnSilver182, 15:17 03-09-2009
vladman

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

Цитата:
как проще всего русифицировать DevExpr_v45_09_07_2009 ? ini или pas ?

Смотря что вы понимаете под словом *проще*. Оба способа, как по мне, равнозначны по сложности.
 
 
Добавлено:
DroN_S

Цитата:
народ, подскажите, как отобразить иконку в cxGrid??? понятно что в событии OnCustomDrawCell... но как  

Скорее всего, вы имели ввиду отображение иконки в одном из View грида, а не в самом cxGrid. Во-первых, у cxGrid нет такого обработчика, во-вторых, тяжело себе представить необходимость отображения иконки именно в cxGrid.
Для отображения иконки не обязательно обрабатывать событие OnCustomDrawCell.
Если речь идет о cxGridTableView, например, то достаточно свойству Properties необходимого cxGridColumn присвоить значение *ImageComboBox*, настроить его необходимые свойства
(*Images*, *Items*) и у вас, в зависимости от значения будет отображаться соответствующая иконка из ImageComboBox.items.
 
Добавлено:
DroN_S
Но если есть необходимостьименно в onCustomDrawCell, то можно отобразить и в обработчике onCustomDrawCell.
JohnSilver182
Я бы немного подправил ваш код.
procedure <YourForm>.<YourcxGridTableView>CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo:
    TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
  if AViewInfo.Item = <YourcxGridTableView>ColumnForImage then
    begin
      ACanvas.Brush.Color := clWhite;
      ACanvas.FillRect(AViewInfo.Bounds);
      <YourcxImageList>.Draw(ACanvas.Canvas, AViewInfo.Bounds, 0, False, True, True);
      ADone := True;
    end;
end;
За ототбражение конкретной иконки отвечает третий параметр (0) - это индекс иконки в <YourcxImageList>.
 
Изменения:
- Отрисовывать иконку только для определенного столбца (<YourcxGridTableView>ColumnForImage)
- Не изменять размеры иконки при изменении размеров колонки и строки
 
Добавлено:
JohnSilver182

Цитата:
2 ALL Кстати для чего нужны три первые команды ?????

ADone := true;  - Признак того, что вы полностью отвечаете за прорисовку конкретной ячейки и не хотите чтобы грид перерисовывал/дорисовывал ее своими стандартными средствами.
ACanvas.Brush.Color := clWhite - Установить цвет кисти в белый для заполнения этим цветом всей ячейки командой ACanvas.FillRect(AViewInfo.Bounds);

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 18:59 03-09-2009
JohnSilver182



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladman Код действительно правильнее  

Код:
 
ACanvas.Brush.Color := clWhite;
ACanvas.FillRect(AViewInfo.Bounds);  

 
Хотя я так  и не пойму зачем такие конструкции ??
Если Canvas это как бы текущий холст ,  почему нельзя писать
 
ACanvas.Закрасить(clWhite)  ??
 
 
 
 
 
 

Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 21:08 03-09-2009
xokc

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

Цитата:
Если Canvas это как бы текущий холст ,  почему нельзя писать
ACanvas.Закрасить(clWhite)  ??  

Ну тогда уж
ACanvas.Закрасить(clWhite, Rect(....))?
А потом захочется
ACanvas.Закрасить(clWhite, clRed, Rect(....)) для рамки?
А потом
ACanvas.Закрасить(clWhite, clRed, ltDot, Rect(....)) для типа штриховки и т.д.?
Пусть уж лучше так, как есть.

Всего записей: 477 | Зарегистр. 22-09-2002 | Отправлено: 22:34 03-09-2009 | Исправлено: xokc, 22:35 03-09-2009
vladman

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

Цитата:
Хотя я так  и не пойму зачем такие конструкции ??  

А *Закрасить* это какой метод TcxCanvas? Только постарайтесь его название написать именно так как он объявлен в cxGraphics, а не по-русски. А потом посмотреть список параметров этого метода. Уверен, после этого все станет понятно.
 
Добавлено:
На DevExpress Channel - три новых видео:

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 23:00 03-09-2009 | Исправлено: vladman, 23:02 03-09-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