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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Иногда, когда устанавливаю в гриде MultiSelect в True, бывает так, что при навигации с клавиатуры сначала, например следующая, запись становится "в фокусе" (то есть в обрамлении чёрно-белого прямоугольника), а уже потом становиться активной (то есть попросту говоря выделенной).
 
Этим процессом можно управлять?
 
Добавлено:
Проблему нашёл и исправил. Она оказалась связана не с MultiSelect, а с тем, что ExpressBars очень медленно обновляются/перерисовываются.
Для решения проблемы вполне хватило добавить в пару мест:
  BarManager.LockUpdate := True;
и   BarManager.LockUpdate := False;

Всего записей: 276 | Зарегистр. 23-01-2005 | Отправлено: 20:04 11-12-2005
AlexPetrovich

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извините за повтор, кто-нибудь может подсказать как использовать иконки размером больше 16х16 в меню и на тулбарах ? (кроме применения dxLargeButton)  
При ипользовании ImageList с иконками 28х28 в меню они обрезаются

Всего записей: 87 | Зарегистр. 08-05-2003 | Отправлено: 10:12 12-12-2005
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AlexPetrovich
А чем LargeButton не подходит?

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 10:35 12-12-2005
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AlexPetrovich!
EZH истину глаголит!

Всего записей: 276 | Зарегистр. 23-01-2005 | Отправлено: 12:09 12-12-2005 | Исправлено: korobovmax, 12:10 12-12-2005
Bill_PHO

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не подскажет ли кто, как правильно в cxGrid выполнить позиционирование на требуемую запись, если известен ее ключ в таблице?

Всего записей: 287 | Зарегистр. 15-08-2003 | Отправлено: 13:44 12-12-2005
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Bill_PHO,
cxGridTableView1.DataController.LocateByKey(ID);

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
>korobovmax
>ExpressBars очень медленно
Подробнее места исправления укажи плиз ...

Всего записей: 702 | Зарегистр. 22-07-2004 | Отправлено: 14:25 12-12-2005 | Исправлено: VadimLou, 14:30 12-12-2005
Bill_PHO

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

Всего записей: 287 | Зарегистр. 15-08-2003 | Отправлено: 14:29 12-12-2005
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
VadimLou, в проекте есть несколько элементов-баров, которые доступны/недоступны в зависимости, если есть нужные данные в записи.
Наиболее удачное место, где нужно обновлять доступность баров - у cxGridTableView событие OnSelectionChanged. В начале этого события пишем BarManager.LockUpdate := True, в серединке - обновление баров вроде ActionUpdateUsername.Enabled := TablePasswords.Active, в конце - BarManager.LockUpdate := False.
 
Получается очень незначительное, практически незаметное снижение производительности, в отличии от случае, если нету такой обработки.

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



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
PetrovD, а вот когда надо по DblClick'у создавать Event'ы, как узнать, на какой час юзер захотел создать?
Вопрос два: Как-нибудь можно просто узнавать ID события в момент клика по нему кнопкой мыши? Надо сделать Action'ы для контекстного меню. Приходится писать в Scheduler OnContextPopup:
var
  ID: Integer;
begin
  if Scheduler.ViewDay.HitTest.HitAtEvent then
    ID := Scheduler.ViewDay.HitTest.Event.ID;
  if Scheduler.ViewWeek.HitTest.HitAtEvent then
    ID := Scheduler.ViewWeek.HitTest.Event.ID;
  if Scheduler.ViewWeeks.HitTest.HitAtEvent then
    ID := Scheduler.ViewWeeks.HitTest.Event.ID;
  if Scheduler.ViewYear.HitTest.HitAtEvent then
    ID := Scheduler.ViewYear.HitTest.Event.ID;
  if Scheduler.ViewTimeGrid.HitTest.HitAtEvent then
    ID := Scheduler.ViewTimeGrid.HitTest.Event.ID;
  ShowMessage(IntToStr(ID));
end;
 
Но это же никуда не годится. Явно есть какой-то более простой способ. Как быть?
GetHitTest'а, как у грида нету

Всего записей: 276 | Зарегистр. 23-01-2005 | Отправлено: 23:03 12-12-2005 | Исправлено: korobovmax, 23:04 12-12-2005
PetrovD

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
korobovmax
 
по первому вопросу:
 
  TimeTableScheduler.ActiveHitTest.Time, а у час ты, наверное, сам оттуда вытащишь...
 
по второму вопросу:
 
В момент клика событие становится выделенным => попадает в массив SelectedEvents, поэтому я вылавливаю ID события так:
 
 if TimeTableScheduler.SelectedEventCount<>1 then exit;
 Module.TimeTableDataSet.Locate('ID',TimeTableScheduler.SelectedEvents[0].ID,[]);

Всего записей: 16 | Зарегистр. 08-09-2005 | Отправлено: 15:35 13-12-2005
korobovmax



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

Всего записей: 276 | Зарегистр. 23-01-2005 | Отправлено: 16:42 13-12-2005
PetrovD

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
korobovmax
 
Па-а-ажалста, мне ж не жалко!

Всего записей: 16 | Зарегистр. 08-09-2005 | Отправлено: 16:48 13-12-2005
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А вот ещё задачка. Под силу ли она будет?
Так как форма-редактор эвентов своя собственная, то и поля события надо заполнять вручную. А что надо заполнить, чтобы сработало напоминание о событии?
Какая-то там мудрёна с полем Options.
 
Добавлено:
Хи-хи. Сам всё сделал.
В поле Options надо писать 6 (3 - для событий "на целый день", остальные - не понял).  
Далее надо у SchedulerDBStorage в событие OnRemindersAlertReminder добавить строчки:
  if AReminder.Event.ID <> NULL then begin
    // БЛА-БЛА-БЛА
    ShowMessage(AReminder.Event.Caption);
  end;
Это нужно, чтобы напоминание не срабатывало в момент, когда событие только что создали.

Всего записей: 276 | Зарегистр. 23-01-2005 | Отправлено: 18:21 13-12-2005 | Исправлено: korobovmax, 18:21 13-12-2005
VadimLou



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

Всего записей: 702 | Зарегистр. 22-07-2004 | Отправлено: 20:38 13-12-2005
PetrovD

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
korobovmax
Если так и дальше пойдет, то мы с тобой станем ведущими специалистами по шедулеру в России

Всего записей: 16 | Зарегистр. 08-09-2005 | Отправлено: 06:13 14-12-2005
golkanavt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Внимание, вопрос знатокам шедулера
экспорт в Excel возможен только в стандартном виде, переделать его как либо возможно? хочется получить расписание в виде таблички, в которой колонки - даты, строки - события (заранее определенный список), соответственно на пересечении нужна отметина, есть событие либо нет

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 13:58 14-12-2005
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
PetrovD, а то! Думаю ещё, что не только по шедулеру
 
 
golkanavt! Возможен экспорт в "собственном" формате или нет определяет наличие исходников. У нас, благо, есть
Как переделать - просто переколбасить cxExportSchedulerToExcel (которая сама вызывает cxExportSchedulerToFile) в модуле cxExportSchedulerLink.pas.
 
Понимаю, непросто. Но возможно. На крайний случай можно всегда самому сделать.

Всего записей: 276 | Зарегистр. 23-01-2005 | Отправлено: 15:18 14-12-2005
PetrovD

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
korobovmax,  
golkanavt
Можно шедулер не переколбашивать (ух какое слово красивое получилось ), а выбирать данные из базы и в экселевский документ их ручками складывать - так по-моему проще получится.
Или еще один вариант - собирать данные в гриду через memorytable или сложным sql-запросом и экспортить ее в Excel стандартными средствами.

Всего записей: 16 | Зарегистр. 08-09-2005 | Отправлено: 18:31 14-12-2005
golkanavt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
korobovmax, PetrovD
 
про такие варианты я и сам знаю, думал, может проще есть путь, ну и ладно, как обычно сделаем ручками

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 14:02 15-12-2005
   

Страницы: 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