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

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



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

Всего записей: 267 | Зарегистр. 08-07-2004 | Отправлено: 06:21 16-12-2005
GodOfWine

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть 2 вопроса по ExpressQuantumGrid 4:
1) как сделать cxGrid неактивным, обычно это делается просто: Grid.enabled:=false;
2) установил свойство cxGrid.OptionsBehavior.CellHints в true, получил хинт с содержимым ячейки при наведении курсора, а хотелось бы, чтобы хинт появлялся только для тех данных, которые не помещаются в ячейку. Пытался сам проверять и выводить хинт, но не смог получить значение ячейки под курсором...

Всего записей: 5 | Зарегистр. 14-12-2005 | Отправлено: 16:42 16-12-2005
borodavolga



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, а тут обсуждаются ли грабли и все такое ActiveX компонент devexpress?

Всего записей: 875 | Зарегистр. 23-06-2004 | Отправлено: 17:50 16-12-2005
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GodOfWine
Цитата: "1) как сделать cxGrid неактивным, обычно это делается просто: Grid.enabled:=false;"
 
У меня это работает. В чем проблема?

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 18:46 16-12-2005 | Исправлено: Alex47, 18:47 16-12-2005
xokc

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


Цитата:
2) установил свойство cxGrid.OptionsBehavior.CellHints в true, получил хинт с содержимым ячейки при наведении курсора, а хотелось бы, чтобы хинт появлялся только для тех данных, которые не помещаются в ячейку. Пытался сам проверять и выводить хинт, но не смог получить значение ячейки под курсором...

 
Делаешь TcxCustomGridView.GetHitTest от Mouse.CursorPos только не забудь преобразовать глобальные координаты в локальные через ScreenToClient. И в полученном TcxGridHitTest ищи ту самую ячейку
 

Всего записей: 477 | Зарегистр. 22-09-2002 | Отправлено: 21:16 16-12-2005 | Исправлено: xokc, 21:17 16-12-2005
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vadson6666, начинай поиски отсюда:
__http://devexpress.com/Support/KnowledgeBase/ShowArticle.xml?kbid=1453&prod=ExpressQuantumGrid&tech=&kbss=card
 
GodOfWine,
про 1: может "не активный" грид - это грид "не в фокусе"? Тогда достаточно передать ффокус любому другому контролу.
про 2: выводить хинты только "при надобности" умеют выводить колонки грида. Можно там посмотреть.
 
borodavolga, попробовать пообсуждать можно. Есть вопрос?
 
GodOfWine,
xokc,
а если выводить хинт самому, как можно узнать, что в ячейке действительно не хватило места для вывода всего содержимого?

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



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

Цитата:
vadson6666, начинай поиски отсюда:  
__http://devexpress.com/Support/KnowledgeBase/ShowArticle.xml?kbid=1453&prod=ExpressQuantumGrid&tech=&kbss=card  

 
Это, конечено, хорошо, только я эту ссылку уже видел и весь форум ДевЭкспресса уже просмотрел, однако, вопрос до сих пор остается открытым, вот если бы какой нибудь небольшой кусочек кода... Хотя бы понять, в каком направлении рыть и к чему вязаться.

Всего записей: 267 | Зарегистр. 08-07-2004 | Отправлено: 10:27 17-12-2005
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vadson6666, да всё просто.
 
Опишу то, как получил решение:
Идём по ссылке на DevExpress и узнаём оттуда метод ViewData.Expand у TcxGridDBCardView.
Смотрим реализацию и видим, что у ViewData есть массив Record'сов, каждый из которых умеет Expand'ить только себя (нам ведь именно это нужно ).
 
Остаётся одна подзадача - узнать индекс текущей записи. При беглом просмотре свойств не нашлось нужного индекса, поэтому приведу приём, которым пользуюсь в случаях, когда неочевидно, откуда взять ID записи:
 
1. Объявляем глобальную переменную   RecID: Integer;
2. (Так как мы используем CardView, то) у CardView в событии OnFocusedRecordChanged:
RecID := AFocusedRecord.Index;
 
Всё - в RecID у нас всегда хранится индекс текущей записи (при этом не надо забывать про поведение с включённым MultiSelect ).
 
Далее уже можно, например, в CardView OnDblClick:
  CardView.ViewData.Records[RecID].Expand(False);
  CardView.ViewData.Records[RecID].Collapse(False);
 
------------------------
 
Не лишним будет сказать, что можно работать не с массивом ViewData.Records, а с ViewData.Cards. В рамках решения данного вопроса - никакой разницы. Но, просто Card'сы умеют чуть-чуть побольше - например, Visible := False .
 
Всё .

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



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
PetrovD, как выделить эвент в шедулере, зная его ID?
Сначала - Scheduler.GoToDate. А дальше?
 
Пробовал напрямую присвоить Scheduler.SelectedEvents[0].ID своему значению, но свойство оказалось read-only.
 
Пробовал так:
Scheduler.SelectEvent((SchedulerDBStorage.GetEventByID(RecID) as TcxSchedulerControlEvent));
 
Тоже облом - вылетает ошибка преобразования типов, что странно ибо TcxSchedulerControlEvent, который нужен для SelectEvent - прямой наследник TcxSchedulerEvent, и которому ничего "своего личного" в реализации SelectEvent не нужно.

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
korobovmax
 
Огромное спасибо за полный и развернутый ответ: все получилось!!!

Всего записей: 267 | Зарегистр. 08-07-2004 | Отправлено: 06:27 19-12-2005
GodOfWine

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

Цитата:
У меня это работает. В чем проблема?

Да, видимо я сам тормозил.
 
xokc

Цитата:
Делаешь TcxCustomGridView.GetHitTest от Mouse.CursorPos только не забудь преобразовать глобальные координаты в локальные через ScreenToClient. И в полученном TcxGridHitTest ищи ту самую ячейку  

Через TcxGridSite получаю TcxCustomGridHitTest, только как по нему найти ячейку?

Всего записей: 5 | Зарегистр. 14-12-2005 | Отправлено: 10:08 19-12-2005
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пытаюсь установить QuantumGrid из DexExpress'а...

Цитата:
[Hint] cxDBData.pas(3986): Value assigned to 'TcxDBDataController.FindRecordIndexByKey' never used
[Error] cxScrollBar.pas(886): Incompatible types: 'Integer' and 'PRect'
[Error] cxScrollBar.pas(886): Incompatible types: 'Integer' and 'tagSIZE'
[Error] cxScrollBar.pas(889): Incompatible types: 'Integer' and 'PRect'
[Error] cxScrollBar.pas(889): Incompatible types: 'Integer' and 'tagSIZE'
[Fatal Error] cxControls.pas(56): Could not compile used unit 'cxScrollBar'

Откопал где-то в инете, что нада дельфи заставить в tools-enviroment добавить в библиотеку папки с сорцами и packages.
Сделал, но ошибки остались..
Что делать?

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 11:43 19-12-2005
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
PetrovD, сам догадался
 
Выделяю запись по ID так:
 
    Scheduler.SetFocus; // надо-евдо
    for i := 0 to Scheduler.VisibleEventCount - 1 do
      if Scheduler.VisibleEvents[i].ID = RecID then
        Scheduler.VisibleEvents[i].Selected := True;
 
 
Добавлено:
Всё, Мастер Шедулера (), научился ручками делать с напоминалками всё, что угодно: и открывать записи (с переходом шедулера на неё), и прекращать напоминание, и переносить напоминание на будущее (Snooze'ить).

Всего записей: 276 | Зарегистр. 23-01-2005 | Отправлено: 13:37 19-12-2005 | Исправлено: korobovmax, 14:08 19-12-2005
gpi

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

Цитата:
Откопал где-то в инете, что нада дельфи заставить в tools-enviroment добавить в библиотеку папки с сорцами и packages.

Достаточно указать пути к исходникам
А ты какую версию устанавливаешь? Случайно хвостов от предыдущей не осталось?
У меня на D7 Quantum Grid 5.11 установилась без проблем

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 20:01 19-12-2005
DroN_S

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

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 20:27 19-12-2005
korobovmax



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

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

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

Цитата:
Через TcxGridSite получаю TcxCustomGridHitTest, только как по нему найти ячейку?

Ну дальше мне казалось очевидно - UnboundModeDemoIntMinerField.pas из Demos:
 
  AHitTest := ViewInfo.GetHitTest(X, Y);
  if AHitTest is TcxGridRecordCellHitTest then
  begin
    ACol := TcxGridRecordCellHitTest(AHitTest).Item.Index;
    ARow := TcxGridRecordCellHitTest(AHitTest).GridRecord.Index;
  end;
 
korobovmax

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

Ну я думаю примерно так:
1. Получив номер ячейки узнаешь ее ширину
2. Получешь через GetTextWidth ширину вывоимого текста
3. Сравниваешь величины и принимаешь решение

Всего записей: 477 | Зарегистр. 22-09-2002 | Отправлено: 23:23 19-12-2005 | Исправлено: xokc, 23:29 19-12-2005
Nuwalli

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сожалея о моем плохом русском я использую переводчика.  
Я видел эту статью http://forum.ru-board.com/topic.cgi?forum=33&topic=2214&start=360, и я имею ту же самую проблему, я использую devExpress Quantum Grid Suite 5.11 и BCB6, я пробовал копировать кодекс, который VladimLou объявлял, и это не работало бы, так интересно, мог ли бы любой помочь мне.
спасибо очень.

Всего записей: 2 | Зарегистр. 19-12-2005 | Отправлено: 23:24 19-12-2005
xokc

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nuwalli
Write about you problem in english. Translator to russian is very bad.

Всего записей: 477 | Зарегистр. 22-09-2002 | Отправлено: 23:32 19-12-2005
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
korobovmax
А я и не говорил, что это из-за путей. Просто пути к packages указывать не нужно.
DroN_S
Обычно с новой версией Quantum Grid идут и новые версии ExpressEditors, ExpressLibrary и т.д. Можно предположить несовместимость версий оставшихся компонентов и вновь устанавливаемых, хотя cxScrollBar.pas не менялся (по размеру) с версии 5.5, а может быть, и более ранней. Поудаляй bpl и dcp-файлы предыдущих версий Quantum Grid в системной папке и папке Delphi\Projects\Bpl. И посмотри, чтобы не были указаны пути к старым исходникам

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 23:38 19-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