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

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



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

Цитата:
Вторично сталкиваюсь с проблемой в TcxVerticalGrid.
Добавляю в TcxVerticalGrid строку типа ComboBox и сколько ни бьюсь по событию EditPropertiesChange немогу получить текущее значение ни текста ни индекса. Подскажите куда копать?  

TcxDBEditorRow(VGridRow).Properties.Value  
Вы это ищете ?

Всего записей: 75 | Зарегистр. 17-03-2006 | Отправлено: 12:33 27-01-2009
SANiONE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, в дизайнере отчётов отображается просмотр, на нём картинка с BMV, Ford,.. , а вот как эту картинку можно заменить на чтонибудь другое, ну чтоб пример показывало на основании моих данных или вообще чтонибудь левое, не делать жеж рекламу автомобильным гигантам в своей программе.

Всего записей: 5 | Зарегистр. 09-09-2008 | Отправлено: 20:58 27-01-2009
Czechoslovak



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SANiONE
Отредактировать файл ресурсов dxPSImgs.res или код загрузки данных в TableView

Всего записей: 175 | Зарегистр. 27-06-2007 | Отправлено: 11:34 28-01-2009
SANiONE

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

Всего записей: 5 | Зарегистр. 09-09-2008 | Отправлено: 14:06 28-01-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как лучше в цикле очистить/обнулить значения всех строк компоненты cxVerticalGrid
 
само собой, что этот код:

Код:
 
  for I := 0 to vgOptions.Rows.Count - 1 do begin
    (vgOptions.Rows[i] as TcxEditorRow).Properties.Value := null;
  end;//for
 

выдаёт ошибку:
 

Цитата:
Project neoba.exe raised exception class EInvalidCast with message 'Invalid class typecast'.

 
 
Неужели нужно проверять тип/класс каждой строки?
 
Добавлено:
Всё, допёр, как очистить все строки cxVerticalGrid

Код:
 
  for I := 0 to vgOptions.Rows.Count - 1 do begin
    if not ((vgOptions.Rows[i] as TcxCustomRow) is TcxCategoryRow) then
      (vgOptions.Rows[i] as TcxEditorRow).Properties.Value := null;
  end;//for
 


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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 22:22 28-01-2009 | Исправлено: X11, 22:31 28-01-2009
xokc

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

Цитата:
Неужели нужно проверять тип/класс каждой строки?

А как иначе? Ведь у TcxCategoryRow и TcxMultiEditorRowProperties нет Value.

Всего записей: 477 | Зарегистр. 22-09-2002 | Отправлено: 22:40 28-01-2009
sam291074



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как сохранить данные строки cxVerticalGrid, имеющую свойство BlobEdit, в файл.
Заранее спасибо.

Всего записей: 113 | Зарегистр. 22-03-2006 | Отправлено: 23:05 28-01-2009
Radio_Kat

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

 
 
 
вопрос про группировку записей в TcxGridDBTableView
уже обсуждался, но не получается сделать вставку записи корректно
 
Ситуация такая:
Есть таблица с полями: id, дата, цена, описание (для простоты таблица из базы Access)
 
таблица отображается в TcxGridDBTableView, сгрупированна по дате.
 
Добавление и редактировании записи происходит в другой форме (вызывается по кнопке)
 
Новая запись по умолчани заносится за текущее число.
 
Проблемма в следующем если перед тем как нажать кнопку "добавить"  
активна была строка с другой датой, то группа записей за эту дату "развернется"  
 
Как это можно побороть?
обновлять весь набор после вставки одной записи принципиально.  
т.к есть тригеры которые изменяют значение одного поля остальных записей  
 
пример проекта (31 Кб):
http://rapidshare.com/files/190563410/simple_prime.rar.html
 
авишка как это "неправильно" работает тут (162 кб):
http://rapidshare.com/files/190567821/simple_prime.avi.html  
 

Код:
 
unit u_main_form;
 
uses u_update_insert;
 
procedure Tf_main_form.b_refreshClick(Sender: TObject);
var j, c, ARecordIndex : Integer;
    b : array of boolean;
    a : array of string;
    SavePlace: TBookmark;
begin
  try
 
    //-- запомнили последовательно разворачивания групп
    c := cxGrid1DBTableView1.ViewData.RowCount - 1 ;
    setLength(b, c + 1);
    setLength(a, c + 1);
    for j := 0 to c do
    begin
       b[j] := cxGrid1DBTableView1.ViewData.Records[j].Expanded;
       a[j] := cxGrid1DBTableView1.ViewData.Records[j].Values[0];
    end;
 
    try
       cxGrid1DBTableView1.BeginUpdate;
       cxGrid1DBTableView1.DataController.BeginLocate;
 
       //-- запомнили выбранную строку
       SavePlace := ADOTable1.GetBookmark;
 
       //-- обновили данные
       ADOTable1.Close;
       ADOTable1.Open;
 
       //-- востановили выбранную строку
       ADOTable1.GotoBookmark(SavePlace);
 
    finally
      cxGrid1DBTableView1.DataController.EndLocate;
      cxGrid1DBTableView1.EndUpdate;
    end;
 
    //-- востановили последовательно разворачивания групп    
    for j:= 0 to length(a) - 1 do
    with cxGrid1DBTableView1.DataController do
    begin
      ARecordIndex := FindRecordIndexByText(0, 1, a[j], False, False, True);
      GetRowIndexByRecordIndex(ARecordIndex, b[j]);
    end;
       
  except
 
  end
end;
 
procedure Tf_main_form.b_insertClick(Sender: TObject);
begin
  ADOTable1.Insert;
  f_update_insert.f_insert := 1;
  f_update_insert.ShowModal;
  b_refreshClick(b_refresh);
end;
 
procedure Tf_main_form.d_updateClick(Sender: TObject);
begin
  f_update_insert.f_insert := 0;
  f_update_insert.ShowModal;
  b_refreshClick(b_refresh);
end;
 
procedure Tf_main_form.FormCreate(Sender: TObject);
begin
  ADOTable1.Close;
  ADOTable1.Open;
end;
 
procedure Tf_main_form.b_deleteClick(Sender: TObject);
begin
  ADOTable1.Delete;
end;
 
 
unit u_update_insert;
 
uses u_main_form;
 
 
procedure Tf_update_insert.b_okClick(Sender: TObject);
begin
  if f_main_form.ADOTable1.Modified then f_main_form.ADOTable1.post;
  f_update_insert.close;
end;
 
procedure Tf_update_insert.FormCreate(Sender: TObject);
begin
  f_insert := 0;
end;
 
procedure Tf_update_insert.FormShow(Sender: TObject);
begin
  if ( f_insert = 1 ) then
  begin
    f_main_form.ADOTable1.FieldByName('description').AsString := '';
    f_main_form.ADOTable1.FieldByName('load_date').AsDateTime := trunc(now());
    f_main_form.ADOTable1.FieldByName('price').AsFloat := 0;
  end;
end;
 
procedure Tf_update_insert.b_canselClick(Sender: TObject);
begin
  if f_main_form.ADOTable1.Modified then f_main_form.ADOTable1.Cancel;
  f_update_insert.close;
end;
 

Всего записей: 26 | Зарегистр. 02-06-2006 | Отправлено: 04:12 29-01-2009
infomSB



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Radio_Kat
Вся проблема в том что грид тоже обрабатывает событие ADOTable.Insert . Может вам поможет делать вот это:
ADOTable.DisableControls;
ADOTable.Insert;
ваш код + Обновление
ADOTable.EnableControls;

Всего записей: 75 | Зарегистр. 17-03-2006 | Отправлено: 09:14 29-01-2009
Radio_Kat

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

Цитата:
Вся проблема в том что грид тоже обрабатывает событие ADOTable.Insert . Может вам поможет делать вот это:  
ADOTable.DisableControls;  
ADOTable.Insert;  
ваш код + Обновление  
ADOTable.EnableControls;

да, это решает проблемму
 
но появляется другая  
компоненты вкладки Express DBEditor ( te_load_date: TcxDBDateEdit; te_price: TcxDBCalcEdit;), которые я использую на второй форме,  тоже становятся не привязанны к ADOTable1
т.е вставлять новую запись придется используя компоненты Express Editor
 
может быть есть ещё какой то вариант?

Всего записей: 26 | Зарегистр. 02-06-2006 | Отправлено: 09:37 29-01-2009
infomSB



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Radio_Kat
Например отключение синхронизации, помоему делалось вот так:
cxGridTableView.DataController.DataModeController.SyncMode := False;

Всего записей: 75 | Зарегистр. 17-03-2006 | Отправлено: 09:51 29-01-2009
Radio_Kat

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

Цитата:
Например отключение синхронизации, помоему делалось вот так:  
cxGridTableView.DataController.DataModeController.SyncMode := False;

а вот это то что нужно  
похоже работает так как хотелось  
огромное спасибо!

Всего записей: 26 | Зарегистр. 02-06-2006 | Отправлено: 09:59 29-01-2009
X11



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

Цитата:
Подскажите как сохранить данные строки cxVerticalGrid, имеющую свойство BlobEdit, в файл.  

Используй TFileStream, т.е. сохраняй через поток. Может у поля уже есть метод SaveToFile? Щас нет дельфи подл рукой.
 
Добавлено:

Цитата:
Цитата:
Например отключение синхронизации, помоему делалось вот так:  
cxGridTableView.DataController.DataModeController.SyncMode := False;
 
а вот это то что нужно  
похоже работает так как хотелось  
огромное спасибо!  

 
Но ты учти, что работа с гридом при отключённом SyncMode отличается.

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 10:14 29-01-2009
Radio_Kat

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

Цитата:
Но ты учти, что работа с гридом при отключённом SyncMode отличается.

а в чем тонкость? я, на самом деле, просто включаю обратно SyncMode после подтверждения insert'а т.е. закрытия формы.

Всего записей: 26 | Зарегистр. 02-06-2006 | Отправлено: 10:35 29-01-2009
infomSB



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

Цитата:
а в чем тонкость? я, на самом деле, просто включаю обратно SyncMode после подтверждения insert'а т.е. закрытия формы.  

Если включаешь потом, то в принципе все отлично должно быть.

Всего записей: 75 | Зарегистр. 17-03-2006 | Отправлено: 10:48 29-01-2009
Sufferer



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

Цитата:
Цитата:Вторично сталкиваюсь с проблемой в TcxVerticalGrid.  
Добавляю в TcxVerticalGrid строку типа ComboBox и сколько ни бьюсь по событию EditPropertiesChange немогу получить текущее значение ни текста ни индекса. Подскажите куда копать?  
 
 
TcxDBEditorRow(VGridRow).Properties.Value  
Вы это ищете ?

В общем перепробовав кучу навороченных вариантов, решил попробовать самый простой. К моему удивлению сработало:
procedure TForm26.cxVerticalGrid1EditorRow1EditPropertiesChange(
  Sender: TObject);
begin ;
 ShowMessage(Format('%d',[TcxComboBox(Sender).ItemIndex]));
end;

Всего записей: 271 | Зарегистр. 21-07-2001 | Отправлено: 15:19 29-01-2009 | Исправлено: Sufferer, 15:28 29-01-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Народ, как побороть глюк рибона - когда я минимизирую окно - он сворачивается?

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 17:07 29-01-2009
Czechoslovak



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SANiONE
Открываешь форму dxPSCPDsg.dfm и далее копайся в исодниках

Всего записей: 175 | Зарегистр. 27-06-2007 | Отправлено: 17:05 30-01-2009
ChiPnGo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TdxDBGrid. У него есть контекстное меню (Sort, remove column, column selector, alignment, best fit...). Где эти строки можно поменять, чтобы перевести на русский?
 
А, вопрос снят, сырцы нашел.

Всего записей: 149 | Зарегистр. 25-10-2008 | Отправлено: 11:29 01-02-2009 | Исправлено: ChiPnGo, 11:41 01-02-2009
infomSB



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ChiPnGo
Если ты используешь 41 девки то править исходники нет необходимости, достаточно использовать cxLocalizer

Всего записей: 75 | Зарегистр. 17-03-2006 | Отправлено: 17:13 01-02-2009
   

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