Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Использование DevExpress (часть 4)

Автор: DIvan
Дата сообщения: 17.11.2010 12:01
Коллеги, подскажите, как наиболее красиво с точки зрения интерфейса решить задачу добавления новых значений в словари, которые подключаются к основному cxGrid'у в качестве списков LookupComboBox'ов? Т.е. юзер хочет максимально прозрачно и быстро добавлять новые значения в выпадающие списки, нажимая кнопку, например, на имени столбца в заголовке основного грида. Возможно ли такое? А как вы делаете?
Автор: TechnoDreamer
Дата сообщения: 17.11.2010 13:12
DIvan
В OnNewLookupDisplayText добавляю новое значение да и всё. Опционально спрашиваю об этом юзера.
Автор: MagistrAnatol
Дата сообщения: 17.11.2010 14:19
vladman
пасиб.
И ещо вопросик - в гриде , для одного столбца установил пропертис SpinEdit -
как в рентайме поставить свойство MaxValue, причем для каждой строки будет свое
MaxValue????
Автор: DIvan
Дата сообщения: 17.11.2010 14:33
TechnoDreamer, отличная мысль, спасибо большое!
Автор: JohnSilver182
Дата сообщения: 17.11.2010 17:48
А про TdxDockPanel никто не знает что за херь ?? Я просто Сменил ОС на Win7 и версию Девок одновременно .
Автор: vladman
Дата сообщения: 17.11.2010 18:56
JohnSilver182

Цитата:
А про TdxDockPanel никто не знает что за херь ?? Я просто Сменил ОС на Win7 и версию Девок одновременно .

И что?
Автор: JohnSilver182
Дата сообщения: 17.11.2010 19:46
vladman
А у меня прикол с TdxDockPanel (DevExpress v47). Когда выводиться окно

Код: dxDockPanelWeb.Visible:=true;
dxDockPanelWeb.SetFocus;
Автор: vladman
Дата сообщения: 17.11.2010 19:56
MagistrAnatol

Цитата:
как в рентайме поставить свойство MaxValue, причем для каждой строки будет свое
MaxValue????

Теперь смотрите в сторону обработчика TcxCustomGridTableItem.OnGetProperties
Справка - ms-help://borland.bds5/ExpressQuantumGrid6.BDS5/ExpressQuantumGrid6/IDH_TcxCustomGridTableItem_OnGetProperties.htm там и примеры есть, для вашего случая обратите внимание на первый.

Добавлено:
JohnSilver182

Цитата:
А у меня прикол с TdxDockPanel (DevExpress v47). Когда выводиться окно

Только что проверил (v49), все в порядке. Попробуйте вместо +-1 вызвать dxDockPanelWeb.Invalidate.
Автор: RomanDaemon
Дата сообщения: 18.11.2010 00:59
В базе данных будут храниться файлы. Это будет и не картинка, и не какой-либо текст или известный объект, а будет произвольный файл с произвольным расширением.

Подскажите пожалуйста есть ли в cxGrid что-либо для работы с такими блоб полями, что упростило бы туда загрузку-выгрузку с popup-интерфейсом? Или вообще что-то полезное на эту тему.

В идеале если поле пока пустое, то предлагало бы загрузить-файл, а при наличии файла - писало бы его название, сохраненное в другом поле и предлагало сохранить blob на диск.
Понятно, что можно ручками написать, но возможно все уже есть и не понадобиться строить велосипед. Так как задача в общем-то популярная.
Автор: linker_2009
Дата сообщения: 18.11.2010 01:33
RomanDaemon
Только ручками. Название файла у вас должно показываться в другом поле, а Blob поле вообще отсутвовать в гриде. Для поля с названием файла рекомедую использовать ButtonEdit в двух экземплярах хранимых TcxEditRepository, одни экземпляр с одной кнопкой "загрузить" для пустого поля, второй с кнопками "сохранить", "очистить" и т.д. для не пустого поля. Менять их на событие OnGetProperties у колонки с именем файла. Если что не понятно, пишите помгу примером или советом.
Автор: RomanDaemon
Дата сообщения: 18.11.2010 01:45
Загрузку уже сделал =) Но пока без заморочек на разные кнопки.
linker_2009
Спасибо, хорошая идея с разными типами кнопок - завтра сделаю.
Для выбора файла стоит использовать cxShellBrowserDialog? У меня пока по быстрому он... или лучше другой?
Автор: TechnoDreamer
Дата сообщения: 18.11.2010 03:28
DBTreeList в режиме инкрементного поиска. Как программно сбросить этот поиск?
Т.е. юзер ввел несколько символов, его перекинуло на соответствующую ноду, потом я вызываю "метод х" и юзер вводит символы сначала (а не затерает клавишей backspace как у меня сейчас ). Вот этот "метод х" мне и нужен.
Автор: linker_2009
Дата сообщения: 18.11.2010 04:53
RomanDaemon

Цитата:
Для выбора файла стоит использовать cxShellBrowserDialog?

Почему бы и нет, главное что бы было удобно)


Добавлено:
TechnoDreamer
А так пробовали?
<YouTcxDBTreeList>.DataController.Search.SearchText:='';
В <YouTcxDBTreeList>.DataController.Search много чего интересного
Автор: sobolenok
Дата сообщения: 18.11.2010 13:14
всем привет! подскажите плиз как можно сделать такой выбор из риббон панели:

на сайте девок качнул видео там ничего нету именно про риббон и выпадающие трилисты.
как я понимаю - это TcxTreeList, привязанный каким-то образом TdxBarContainerItem?
хотя бы в общих чертах куда копать. очень благодарен!
Автор: linker_2009
Дата сообщения: 18.11.2010 13:23
sobolenok
1.на рибон добавляете dxBarSubItem
2.вставляете dxBarControlContainerItem, настраиваете.
3. вставляете обычный dxBarButton
Усе.

Добавлено:
по п.2 у dxBarControlContainerItem.Control выбераете ваш cxTreeList.cxTreeList кинте на форму которую вы никогда не покажете, ибо при запуске cxTreeList пропадет с формы.

Добавлено:
TechnoDreamer
Извиняюсь, ввел в заблуждение. Попробуйте
<YouTcxDBTreeList>.DataController.Search.Locate(<YouColumnName>.index,'');
Автор: JohnSilver182
Дата сообщения: 18.11.2010 14:38

Цитата:
олько что проверил (v49), все в порядке. Попробуйте вместо +-1 вызвать dxDockPanelWeb.Invalidate.


Неработает
Автор: sobolenok
Дата сообщения: 18.11.2010 19:39
linker_2009
спасибо большое, все получилось!
Автор: vladman
Дата сообщения: 18.11.2010 21:39
JohnSilver182

Цитата:
Неработает

Набросайте простой пример который показывает как неработает.
Автор: SIgor33
Дата сообщения: 19.11.2010 08:15
Подскажите: есть TdxBarManager у него соотвественно TdxBar как сделать чтобы пользователь не мог перемещать(грубо говоря привязать его допустим к TOP) TdxBar (какое свойство ни как немогу найти)
Автор: dimm78
Дата сообщения: 19.11.2010 09:38

Цитата:
Подскажите: есть TdxBarManager у него соотвественно TdxBar как сделать чтобы пользователь не мог перемещать(грубо говоря привязать его допустим к TOP) TdxBar (какое свойство ни как немогу найти)

Обратите внимание на свойство NotDocking у TdxBar
Автор: marser
Дата сообщения: 19.11.2010 10:20
SIgor33

Цитата:
Подскажите: есть TdxBarManager у него соотвественно TdxBar как сделать чтобы пользователь не мог перемещать(грубо говоря привязать его допустим к TOP) TdxBar (какое свойство ни как немогу найти)

Ещё можно обработать событие dxBarManager.OnDocking
Автор: SIgor33
Дата сообщения: 19.11.2010 10:52
dimm78
marser
свойство NotDocking то что надо, благодарю
Автор: fortezza
Дата сообщения: 19.11.2010 15:24
Здравствуйте,
подскажите, правильна ли такая общая реализация удаления выделенных строк (cxGrid) для всех форм проекта:


Код:
procedure TMainEditForm.Delete(Form : TForm);
var dsInd : integer;
i : integer;
begin
for dsInd := 0 to Form.ComponentCount - 1 do
if (Form.Components[dsInd] is TcxGrid) then
with (Form.Components[dsInd] as TcxGrid) do
if CanFocusEx then
for i := 0 to ViewCount - 1 do
if (Views[i] is TcxGridDBTableView) then
with TcxGridDBTableView(Views[i]) do
if Focused then
TcxGridDBTableView(TcxGridDBTableView(Views[i])).DataController.DeleteSelection;
end;
Автор: tanaseduard
Дата сообщения: 19.11.2010 15:30
Есть проблема со скинами.
А конкретнее с частотой обновления в Win 7.
Версия 53.
В XP рефрешилось намного быстрее, как можно полечить?

Добавлено:
fortezza

Во первых лучше искать по cxGridTableView etc...
Во вторых вюшка может быть завязана на датасет, тут прийдеться фильтровать по типу вьюшки, следует также учесть что вьюшки могут быть не в гриде а в GridViewRepository.
Также дата сет может быть не редактируеммый, соответственно попытка удалить вызовет ошибку.

Автор: linker_2009
Дата сообщения: 19.11.2010 16:24
fortezza
лишний один цикл, сразу проверяйте на TcxGridDBTableView ( ...if (Form.Components[dsInd] is TcxGridDBTableView) then ...).
И такой вопрос, я так понимаю эта процедура будет вызыватся на кнопку "удалить", а фокус на виве останется?
Автор: Prot_XT
Дата сообщения: 20.11.2010 19:03
Пробую работать с dxRibbon...
Хочу реализовать поиск по нажатию клавиши Enter в dxBarEdit, куда они это засунули? Здесь как-то все по другому чем в обычном Edit... Обрабатываю событие OnKeyDown на клавишу Enter, но при нажатии Enter она гасится где-то что-ли и перепрыгивает фокус сразу на грид, замучился бодаться с этой ерундой.
Кто знает подскажите что делать?
Автор: linker_2009
Дата сообщения: 20.11.2010 19:30
Prot_XT
ПКМ по рибону->Add cxEditItem->TextEdit
На событие OnChange
str:=Vartostr(<YouTcxBarEditItem>.EditValue);
Автор: Prot_XT
Дата сообщения: 21.11.2010 04:10
Нет, мне не нужно OnChange, мне необходимо событие по нажатию Enter, а после этого фокус слетает сразу же на Grid.
Автор: linker_2009
Дата сообщения: 21.11.2010 05:43
А, сори, не понял).Тогда если только воспользоваться TdxBarControlContainerItem и подсунуть ему обычный едит. Но в 49 девках не могу у него настройть отображение Caption'а.
Автор: Prot_XT
Дата сообщения: 21.11.2010 07:03
У меня вообще версия 38..., что-то подобное видел на английском в поддержке, но из за своего плохого английского так и не понял что они советуют. Вот ссылка:
http://devexpress.com/Support/Center/p/Q33928.aspx , последний пост
Что-то типа ExpressBars Editor перекрывает нажатие Enter... короч мож кто толково разжует, что они рекомендуют?

Добавлено:
Да, TdxBarControlContainerItem с обычным едитом работает как надо, но вроде как бы это не выход. Во первых смотрится он на риббоне как "не родной", плюс опять же спортивный интерес заставить dxBarEdit или cxEditItem работать с Enter.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.