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

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

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

ShIvADeSt (07-02-2009 14:53): Продолжаем тут
http://forum.ru-board.com/topic.cgi?forum=33&topic=10123#1
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 122

   

ShIvADeSt



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

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




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

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 03:16 29-01-2007 | Исправлено: VitaliM, 15:47 24-11-2008
jicoff

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZalivkoDenis
 
Это точно, нужно за 2 события зацепляться OnDetailFirst и OnDetailIsCurrentQuery, при этом у детейл вью параметр DetailInSQLMode = true. Второе событие всегда вызывается при изменении текущей записи в детейле, чтобы определить - это та же мастер-запись или уже другая. Если событие вернет false, то тогда вызывается первое событыие для перечитки информации в соответствии с новой мастер-записью.
 
Например, у меня детейл DataSet - это процедура, как правило. В событии OnDetailIsCurrentQuery проверяю параметры процедуры: соответствуют ли они текущей мастер-записи
 
return DetailProc->ParamByName("@Name")->Value == AMasterDetailKeyValues;
 
В событии OnDetailFirst что-то типа:
 
  if(DetailProc->ParamByName("@Name")->Value == AMasterDetailKeyValues)
  {
    DetailProc->First();
    return;
  }
  DetailProc->DisableControls();
  try
  {
    try
    {
      DetailProc->Close();
      DetailProc->Params->ParamByName("@Name")->AsInteger = AMasterDetailKeyValues;
      DetailProc->Open();
    }
    catch(...)
    {
      throw;
    }
  }
  __finally
  {
    DetailProc->EnableControls();
  }
  AReopened = true;
 

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 17:38 05-11-2008 | Исправлено: jicoff, 17:40 05-11-2008
Ziltoid

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
samusev
 
И все-таки я бы попробовал в основной проге сделать ряд функций на экспорт по управлению Риббоном и dxTab'ом. В параметры функции должны идти строки и числа (никаких указателей), а в ДЛЛке наруливал бы адреса функций через GetProcAddress и вызывал бы.

Всего записей: 24 | Зарегистр. 30-05-2008 | Отправлено: 17:50 05-11-2008
ChiPnGo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TdxDBLookupEdit
 
Что-то никак не могу программно стереть в нем текст. О_о
 
Добавлено:
В его ListSource поменялся фильтр, нужно выбранное значение стереть.
 
Добавлено:
Ясн, датасет надо подергать.

Всего записей: 149 | Зарегистр. 25-10-2008 | Отправлено: 22:03 06-11-2008
clear2121



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hi!  
Может кто пояснит?  
 
Имею TcxTreeList (DevExpress), называется mFir. Вставляю в него записи. На событие SelectionChanged делаю  
 

Код:
 
lPrim->Caption = mFir->FocusedNode->Values[7];  
tmpID   = mFir->FocusedNode->Values[3];  
tmpMID = mFir->FocusedNode->Values[4];  
tmpB     = mFir->FocusedNode->Values[5];  
LoadTels();  <--- моя функция  
 

 
В этой моей функции вызывается функция из формы1 в которой идет запрос в базу.

Код:
 
if( !Form1->DataSQL( "exec w_tels 0," + tmpID, DM->qTels, 1 ) ) // передаю команду, кто запрашивает, результат  
{  
   Form1->ShowMes( "10: " + Form1->sV, 0, 0 );  
   return;  
}  
 

 
Так вот, если я удаляю последнюю запись в таблице (Root или Children) - вылазит ошибка доступа. Если я код из своей функции переношу непосредственно в SelectionChanged, то всё нормально.  
 
Не пойму почему так.  
СПАСИБО!

Всего записей: 311 | Зарегистр. 07-04-2005 | Отправлено: 03:30 07-11-2008
infomSB



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
clear2121
А где конкретно появляется ошибка доступа ? Ведь во втором коде ей появится в принципе негде, только можете в методе DataSQL

Всего записей: 75 | Зарегистр. 17-03-2006 | Отправлено: 09:44 07-11-2008
zvyagaaa



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

Всего записей: 776 | Зарегистр. 02-02-2005 | Отправлено: 15:09 07-11-2008
Ziltoid

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zvyagaaa
 
Скины (в смысле dpk-шки с ними) как раз компилить не надо. Идея состояла именно в этом - отвязаться от этих пакетов, потому что они утолщают экзешник на 250 кил каждый. Компилить надо dpk-шки, отвечающие за отрисовку скина на конкретном компоненте: dcldxSkinsdxBarsPaintersDXX.dpk - отрисовка dxBar, dcldxSkinscxPCPainterDXX.dpk - отрисовка cxPageControl, dxSkinsdxRibbonPainterDXX.dpk - отрисовка Ribbon и тд.

Всего записей: 24 | Зарегистр. 30-05-2008 | Отправлено: 18:15 07-11-2008
zvyagaaa



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ziltoid
о, спасибо за инфу, а то прога считай пустая, на 6 метров больше стала из-за скинов

Всего записей: 776 | Зарегистр. 02-02-2005 | Отправлено: 18:22 07-11-2008
TSGURAL

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос по использованию полей типа CheckBox в cxGrid:
при перемещении по записям с помощью мышки CheckBox помечается, даже если клик был не на самом CheckBox-е, который занимает небольшое место в центре ячейки, а рядом. Как этого избежать?

Всего записей: 9 | Зарегистр. 07-06-2008 | Отправлено: 14:16 08-11-2008
wbsg

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

Цитата:
Скины (в смысле dpk-шки с ними) как раз компилить не надо.

 
Так, в общем к слову пришлось. Компилить-то их можно, но в IDE устанавливать не надо.
Если скины установить в IDE, то IDE сразу же в uses дописывает набор установленных скинов, а это как раз увеличение размера и дает. Если же их не устанавливать, то по умолчанию доступен только UserSkin, а остальные придется подгружать через LoadSkinFromFile (так, кажется)
 
Да, речь идет о v.37+

Всего записей: 65 | Зарегистр. 08-06-2005 | Отправлено: 17:39 08-11-2008
SHKoder



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
поставил CodeGear™ Delphi® 2009  Version 12.0.3210.17555 Copyright © 2008 Embarcadero Technologies, Inc. All Rights Reserved.
т.е.
CodeGear Delphi 2009 RTM v12.0.3170.16989
Delphi_CBuilder2009Update1
DevExpr_v39_25.09.2008
 
ложу на форму объекты cxTButton и cxTEdit
дублкликом генерирую события OnClick и получаю в коде это:

Код:
procedure TForm1.cxButton2Click(: Sender);
begin
 
end;
 
procedure TForm1.cxTextEdit1PropertiesChange(Sender17~TObject: T);
begin
 
end;
 

как это лечить??
 
хотя через инспектор объектов все работает отлично, и со стандартными компонентами тоже
что за ... ?

Всего записей: 137 | Зарегистр. 16-01-2006 | Отправлено: 22:09 08-11-2008
clear2121



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
infomSB
В том то и дело, что появится негде. Один и тот же код получения данных через функцию DataSQL по всей программе работает нормально. Мне просто непонятно - если её вызов в событие SelectionChanged, то работает нормально, а если ещё через функцию, то ошибка доступа к памяти.  
 
Ладно, работает и уже хорошо.  

Всего записей: 311 | Зарегистр. 07-04-2005 | Отправлено: 02:44 09-11-2008
freimanis

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

Цитата:
Вопрос по использованию полей типа CheckBox в cxGrid:  
при перемещении по записям с помощью мышки CheckBox помечается, даже если клик был не на самом CheckBox-е, который занимает небольшое место в центре ячейки, а рядом. Как этого избежать?

В общем случае никак. Вариант один - написать собственного наследника TcxCheckBoxProperties.

Всего записей: 35 | Зарегистр. 09-10-2007 | Отправлено: 15:22 09-11-2008
afiget



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

Цитата:
DevExpr_v39_25.09.2008

соместимы с Delphi 2009?

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 02:12 10-11-2008
freimanis

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

Цитата:
соместимы с Delphi 2009?

Совместимы.

Всего записей: 35 | Зарегистр. 09-10-2007 | Отправлено: 08:06 10-11-2008
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как "пройтись" по выделенным итемам cxListBox`а?
 

Код:
 
  for I := 1 to lvPhones.SelCount -1 do begin
    tel_num := lvPhones. ...
 
 
  end;//for I := 1 to lvPhones.SelCount -1 do begin
 
 


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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 17:42 10-11-2008
Darl

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Наверно по всем итемам пройтись проверяя Items[i]->Selected труе иль нет

Всего записей: 140 | Зарегистр. 10-07-2002 | Отправлено: 18:46 10-11-2008
vacool

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

Всего записей: 2 | Зарегистр. 10-11-2008 | Отправлено: 19:39 10-11-2008
freimanis

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

Цитата:
Наверно по всем итемам пройтись

+1
 

Цитата:
проверяя Items[i]->Selected

Не так. Надо анализировать свойство Selected[Index]

Всего записей: 35 | Зарегистр. 09-10-2007 | Отправлено: 19:53 10-11-2008
vacool

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А можно перезалить?
Очень прошу! Сломал голову, как самодельные скины ставить!!!

Всего записей: 2 | Зарегистр. 10-11-2008 | Отправлено: 21:52 10-11-2008
   

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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress 2
ShIvADeSt (07-02-2009 14:53): Продолжаем тут
http://forum.ru-board.com/topic.cgi?forum=33&topic=10123#1


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru