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

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
Пользовался раньше VirtualTreeView, сейчас нужно перейти на Developer Express.
Пробую разобраться с TcxTreeList. Создаю колонку CheckBox. Хочется, чтобы при "чеканье" менялось состояние дочерних и родительских узлов. В VirtualTreeView это делается автоматом. Как решается проблема в TcxTreeList?
Нужно следующее:
 - Если все дочерние элементы помечены, родительский нод тоже должен быть помечен.
 - Если все дочерние элементы не помечены, родительский нод тоже должен быть не помечен.
 - Если помечены не все дочерние элементы, то родительский нод должен быть помечен "серым".
 
Можно ли это как-то настроить или только программным путем по обработке событий?
 
И еще вопрос. CheckBox обязательно должен быть в отдельной колонке или можно у текстовой колонки его установить?

Всего записей: 35 | Зарегистр. 18-06-2004 | Отправлено: 11:50 23-09-2005
webpython

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex47
Большое спасибо за совет, но т.к. я не числюсь в клиентской базе DevExpress, то и fix (речь идет об ошибке в TcxDateEdit ) мне никто слать не собирается
Вот если бы кто подсказал, как можно скачать этот преславутый fix без лишних вопросов...

Всего записей: 2 | Зарегистр. 21-09-2005 | Отправлено: 16:31 24-09-2005 | Исправлено: webpython, 16:33 24-09-2005
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
webpython
1. Можно попробовать поковырять (cxCalendar.TcxCustomDateEditProperties.PrepareDisplayValue) , сравнив код с предыдущими версиями.
2. У меня эти ошибки в TcxDateEdit не возникают, - нет полей дат  в базе в
формате string. Попробуйте поменять формат полей в базе на Date.

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 19:38 24-09-2005
stalker780



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

Всего записей: 216 | Зарегистр. 01-07-2003 | Отправлено: 15:34 27-09-2005 | Исправлено: stalker780, 18:17 27-09-2005
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
stalker780
Сделай на основе проекта примерчик (желательно из демок DevExpress), чтобы можно было посмотреть предметно.

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 08:37 28-09-2005
stalker780



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

Цитата:
Сделай на основе проекта примерчик (желательно из демок DevExpress), чтобы можно было посмотреть предметно.

Мдась на тестовом примере воспроизвести не удалось. Ибо база не FB с обязательными идентификаторами
Я так понял проблема в том, что при потере фокуса, редактируемый грид переходит в состояние Browse или Inactive с постом
Лана, пока порою, бо проблема сейчас встала из-за этого серьезная. если что, накрапаю простенький примерчик с базой, пока времени на него нет.

Всего записей: 216 | Зарегистр. 01-07-2003 | Отправлено: 17:13 28-09-2005
Alex1978

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Может кто-то все ж таки знает как запустить прогу с Экспресами под Windows 95 ?

Всего записей: 306 | Зарегистр. 27-02-2003 | Отправлено: 06:41 29-09-2005 | Исправлено: Alex1978, 07:56 29-09-2005
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex1978
 
Delphi6 - это последняя версия, которая "официально" работает с win95 (с соответствующими патчами). Многие для win95 используют Delphi5.
Других вариантов не просматривается.

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 13:28 29-09-2005
Alex1978

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alex47
Т.е. единственный вариант скомпилировать прогу под Д5 и потестить, никаких обнов от мелкософта для Win95 нет, дабы проги расчитаные на Win98 запускались под 95 нет?
 
Есть и Д5, а что за соответствующие патчи?

Всего записей: 306 | Зарегистр. 27-02-2003 | Отправлено: 15:29 29-09-2005 | Исправлено: Alex1978, 15:30 29-09-2005
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex1978
1. Delphi6 со всем набором патчей:
    D6_upd2_ent, D6_RTL2_ENT, D6_RTL3_ENT.
    На Delphi5 не работал, состава патчей не знаю.  
2. Microsoft win95 не поддерживает, поэтому  обнов ждать не стоит.

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 16:03 29-09-2005
VadimLou



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Исправления для DevEx от 26 августа 2005 от траблов работы с датами (и немного другого):
 
"ExpressDataController"
 
cxVariants.pas
 
function VarIsSoftNull(const AValue: Variant): Boolean;
begin
  {+}
//  Result := VarIsNull(AValue) or
//    ({(VarType(AValue) = varString)}VarIsStr(AValue) and (AValue = ''));
  Result := VarIsEmpty(AValue) or VarIsNull(AValue) or
    ({(VarType(AValue) = varString)}VarIsStr(AValue) and (Trim(VarToStr(AValue)) = ''));
 {+.}
end;
 
"ExpressEditors Library 5"
 
cxCalendar.pas
 
procedure TcxCustomDateEditProperties.PrepareDisplayValue(
  const AEditValue: TcxEditValue; var DisplayValue: TcxEditValue;
  AEditFocused: Boolean);
 
  function GetDisplayValue: string;
  var
    AValue: TcxEditValue;
  begin
    {+}
    //if VarIsSoftNull(AEditValue) or (AEditValue = NullDate) then
    //  Result := GetEmptyDisplayValue(AEditFocused)
    if VarIsSoftNull(AEditValue) or ( (VarIsDate(AEditValue) or VarIsNumericEx(AEditValue))
      and (AEditValue = NullDate)) then
    begin
      Result := GetEmptyDisplayValue(AEditFocused);
    end
    {+.}
    else
      if not(VarIsStr(AEditValue) or VarIsDate(AEditValue) or VarIsNumericEx(AEditValue)) then
 
...
 
cxCurrencyEdit.pas
 
procedure TcxCustomCurrencyEdit.KeyPress(var Key: Char);
begin
  {+}
  if not (ActiveProperties.UseThousandSeparator and (Key = ThousandSeparator)) and
    {$IFNDEF CLR}(Key in ['.', ',']){$ELSE}((Key = '.') or (Key = ',')){$ENDIF} then
    Key := DecimalSeparator{$IFDEF CLR}[1]{$ENDIF};
  inherited KeyPress(Key);
  {+.}
end;
 
 
cxDateUtils.pas
 
function TextToDateEx(AText: string; var ADate: TDateTime): Boolean;
var
  ADay, AMonth, AYear: Word;
  {+}
  sBaseText: string;
  {+.}
begin
  try
    AText := Trim(AText);
    if AText = '' then
      Result := False
    else
    begin
      {+}
      sBaseText := AText;
      {+.}
      if not cxFormatController.UseDelphiDateTimeFormats then
        CorrectTextForOleDateTimeConversion(AText);
      // Smart Date
      if not SmartTextToDate(AText, ADate) then
        if cxFormatController.UseDelphiDateTimeFormats then
        // В режиме cxFormats.pas:TcxFormatController.UseDelphiDateTimeFormats == True  
        // в Delphi 5 работать не будет, т.к. нужно делать испрвления в системной библиотеке.
        // На других Delphi этот режим не проверял. По умолчанию этот режим не используется.
          ADate := StrToDateTime(AText)
        else
          {+}
          //ADate := VarToDateTime(AText);
          if not cxStrToDateTime(AText, True, ADate) then
            ADate := VarToDateTime(sBaseText);
          {+.}
      Result := (ADate < MaxInt) and (ADate > -MaxInt - 1);
      if Result then
      begin
        DecodeDate(ADate, AYear, AMonth, ADay);
        Result := (ADay > 0) and (AYear <= MaxYear);
      end;
    end;
  except
    Result := False;
    ADate := NullDate;
  end;
end;
 
// Для .NET
 
function TextToDateEx(AText: string; var ADate: TDateTime): Boolean;
var
  ADay, AMonth, AYear: Word;
  {+}
  sBaseText: string;
  {+.}
begin
  try
    AText := Trim(AText);
    if AText = '' then
      Result := False
    else
    begin
      {+}
      sBaseText := AText;
      {+.}
      if not cxFormatController.UseDelphiDateTimeFormats then
        CorrectTextForOleDateTimeConversion(AText);
      // Smart Date
      if not SmartTextToDate(AText, ADate) then
        if cxFormatController.UseDelphiDateTimeFormats then
          ADate := StrToDateTime(AText)
        else
          {+}
          //ADate := TDateTime.Parse(AText);
          if not cxStrToDateTime(AText, True, ADate) then
            ADate := TDateTime.Parse(AText);
          {+.}
      Result := True;
      if Result then
      begin
        DecodeDate(ADate, AYear, AMonth, ADay);
        Result := (ADay > 0) and (AYear <= MaxYear);
      end;
    end;
  except
    Result := False;
    ADate := NullDate;
  end;
end;
 
"ExpressLibrary"
 
cxContainer.pas
 
procedure TcxCustomPopupWindow.Popup(AFocusedControl: TWinControl);
...
  procedure ShowPopupWindow;
  var
    P: TPoint;
  begin
    InitPopup;
    ...
      if FFocusedControl = nil then
        SetFocus
      else {+} if FFocusedControl.CanFocus then {+.}
        FFocusedControl.SetFocus;
...
 

Всего записей: 702 | Зарегистр. 22-07-2004 | Отправлено: 17:58 29-09-2005
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VadimLou
Здорово!!!
Только есть просьба. Если это полностью результат собственных изысканий, а не патчи от поддержки, нельзя ли подробнее прокомментировать смысл сделанных изменений.

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 21:36 29-09-2005 | Исправлено: Alex47, 21:44 29-09-2005
VadimLou



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В основном это:
 
Для дат основная причина ступора это function GetDisplayValue а именно выражение сравнения:
 (AEditValue = NullDate). Тут идёт попытка автоматической конвертиации варианта и когда он строка (а это как правило всегда) - то как резулатат - ступор ...  
 
cxDateUtils.pas:TextToDateEx - применяется при конвертации строки в дату во время проверки текущего значения с разными масками (Standart, regExp).
Дата может быть введена не полностью (без года), тогда проверка должна это учитывать (автоматом подставлять год).
 
 С датами DevEx работает в 2-х режимах:
1) с использованием стандартных дельфовых функций
2) с исп-ем DevEx ф-ций (ПО УМОЛЧАНИЮ)
 
Это регулируется свойством cxFormats.pas:cxFormatController.UseDelphiDateTimeFormats.
 
При использовании DevEx -ф-ций не срабатывала ф-ция VarToDateTime. Я не разбирался с ней, а использовал другую(работающую) DevEx ф-цию: cxStrToDateTime.
 
При использовании 1-го варианта для Delphi 5 нужно или править системный ф-ции Дельфы или вызывать их исправленную копию. ДЛя других версий дельфы я этот вариант не проверял.
 
cxContainer.pas - прокверка возможности установки фокуса дабы избежать ругательств... это может проявляться в очень редких случаях.
 
 
 

Всего записей: 702 | Зарегистр. 22-07-2004 | Отправлено: 00:35 30-09-2005
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VadimLou
Все понятно, Успехов!

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 09:13 30-09-2005
LeXB



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Всем доброго времени суток.
Может кто сталкивался с такой проблемой. D7+DevExpress 5.0.
Приложение написанно на BPL, все модули написанны с максимальным использованием компонент DevExpress, основной модуль (exe), запускающий остальные, сделан стандартными компонентами и единственный компонент в главном модуле TcxLookAndFeelController. Теперь собственно сама проблема: если я пытаюсь в главном модуле использовать TcxGrid, то при загрузке любого нашего пакета выходит ошибка:
A class named TcxEditRepositoryLookupComboBoxItem already exists.
И это не только с гридом, большинство компонентов выдают подобные ошибки. Это зависит даже не столько от того какие компоненты на форме, а что включенно в раздел Uses.
Когда работали только на стандартных компонентах всё работало как часики. Может кто сталкивался, помогите плз...

Всего записей: 55 | Зарегистр. 05-03-2004 | Отправлено: 15:40 30-09-2005
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LeXB
Вот ссылки по runtime packages:
http://www.inquiry.com/techtips/delphi_pro/10min/10min0301-1.asp
http://www.obsof.com/delphi_tips/DL613.html
http://delphi.about.com/library/weekly/aa010901a.htm
http://delphi.about.com/library/weekly/aa012301a.htm
http://bdn.borland.com/article/0,1410,27178,00.html
http://www.obsof.com/delphi_tips/delphi_tips.html
Может помогут решить проблему...

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 10:51 01-10-2005
Alex1978

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
inigo
Присоединяюсь к вопросу (если разобрался подскажи плз решение).

Всего записей: 306 | Зарегистр. 27-02-2003 | Отправлено: 13:40 02-10-2005
LeXB



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alex47
Спасибо за помошь, только я не нашел то что мне требуется (может плохо искал ), попробую объяснить чуть чуть по другому какая у меня ситуация и свои наблюдения.
Копия VCL в памяти когда работаешь с BPL один у всего проекта. Когда грузится VCL DevExpress-а вместе с exe, по при загрузке моих BPL DevExpress пытается создать ещё одну свою копию VCL и вылетает на ошибку, т.к. все это уже сидит в памяти и соответственно именна всех классов уже заняты. Но когда грузится VCL DevExpress-а вместе с моими BPL то такой ситуации не возникает, даже если я 10 разных своих BPL загружаю которые используют один и тот же VCL.
 
Добавлено:
Alex47
Ещё раз спасибо за помощь. Решение найдено

Всего записей: 55 | Зарегистр. 05-03-2004 | Отправлено: 09:45 03-10-2005
Vitus_Bering



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Каким образом менять стиль строки или ячейки в QuantumGrid 5.9, в зависимости от значения поля?

Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 13:42 03-10-2005
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vitus_Bering
OnGetContent style event handler:
procedure TForm1.cxGrid1DBTableView1StylesGetContentStyle(
  Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
  AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
begin
  //  use the
  //  ARecord.Values[ViewColumnName.Index]
  //  array to get the value.
  // Пример:
if ARecord.Values[AItem.Index] < 0 then  
AStyle := <StyleRed>
  else AStyle := <StyleDefault>;
 
end;

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 15:25 03-10-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