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

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

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

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

   

golkanavt



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

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




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

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 10:31 07-02-2009 | Исправлено: vladman, 14:36 24-10-2009
volser

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

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 14:53 08-07-2009 | Исправлено: volser, 14:54 08-07-2009
vladman

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

Цитата:
Подскажите если кто знает как определить текущий цвет элемента Ribbon'a?

Когда-то помогла вот эта статья. Надеюсь будет и вам полезна.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 14:54 08-07-2009
MagistrAnatol



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

Цитата:
Он должен бить уже известен и храниться в базе

ето понятно,но шоб его записать я должен определить тип при вставке файла, самый простой способ по расширению.
Нет примера для события?

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 15:06 08-07-2009
JohnSilver182



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

Цитата:
Что именно не получается? Что конкретно хотелось бы сделать?
 

 
Я причем делал это на Ehlib  .Типа если fieldname  такое то ,  то  посмотри в другое fieldname   и  покрась  ячейку (ну это стандартно )  .  
 
З.Ы. в  Девках  DrawColumnCell  нет (
 
procedure TFormSprav.DBg_leftDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumnEh;
  State: TGridDrawState);
begin
 
 
if (LowerCase(column.fieldname) ='drug_name') then begin
  with DBg_left.Canvas do begin
       if self.DataSource_left.DataSet['nal']=0  then
         begin
 
            {brush.color:=$e0e0e0;
            Font.Color:=$0;
            FillRect(Rect);
            TextOut(Rect.Left+2,Rect.Top,Column.Field.Text);}
 
         end;
  end;//with
 end;//if
 
end;

Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 15:12 08-07-2009 | Исправлено: JohnSilver182, 15:16 08-07-2009
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MagistrAnatol
Пример
 
Добавлено:
JohnSilver182
Тема называется "Использование DevExpress". При чем здесь Ehlib?

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 15:13 08-07-2009
vladman

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

Цитата:
З.Ы. в  Девках  DrawColumnCell  нет (  

Вы ошибаетесь. У TcxCustomGridTableView существует событие OnCustomDrawCell
TcxGridTableDataCellCustomDrawEvent = procedure(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean) of object;
Через параметр AViewInfo сможете добраться к многим свойствам ячейки, в том числе, нужным вам Item, и Value.
ms-help://borland.bds5/ExpressQuantumGrid6.BDS5/ExpressQuantumGrid6/IDH_Class_TcxGridTableDataCellViewInfo.htm

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 15:27 08-07-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
volser
есть небольшой ньюанс - вот кусок кода
TMetaClass *MetaClass;
//MetaClass = __classid(Graphics::TBitmap); // bmp
MetaClass = __classid(TJPEGImage); // bmp
 
AGraphicClass=MetaClass;
но в своиствах имейджа нужно указать тип класа - если я выбыраю любой тип кроме  
TJPEGImage - выдает ошибку имейдж из нот валид
может как-то по другому присваивается клас а не AGraphicClass=?
 
 
Добавлено:
в примере на девках пишут
 FOnGetGraphicClass(AItem, ARecordIndex, APastingFromClipboard, Result); - но я в упор не нахожу какой файл надо проинскайдить

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 15:31 08-07-2009
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MagistrAnatol
Что это за класс TMetaClass? Зачем он?
Нужно просто указать AGraphicClass = TBitmap или AGraphicClass  = TJPEGImage.

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 15:42 08-07-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ето в делфи так
если я пишу так в билдере
получаю
[BCC32 Error] _frmMain.cpp(586): E2015 Ambiguity between 'TBitmap' and 'Windows::TBitmap'
если  
AGraphicClass = Windows::TBitmap; -
[BCC32 Error] _frmMain.cpp(586): E2108 Improper use of typedef 'Windows::TBitmap'

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 15:46 08-07-2009
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MagistrAnatol
Нужно просто указать с какого модуля брать. Попробуйте так AGraphicClass  = Graphics.TBitmap;

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 15:48 08-07-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
volser
пробывал уже такой вариант не проходит
вот рабочий код
AnsiString AExt ;
AExt =tPolya->FBN("EXT")->AsString;
cxGrid1DBCardView1KARTINKA->Index)));
if (AExt=="bmp") gr = new Graphics::TBitmap;
if (AExt=="jpg") gr = gr = new TJPEGImage;
AGraphicClass = TGraphicClass(gr);
но он работает только если в базе однотипные картинки и правильно выставлено свойство GraphicClassName
 
Добавлено:
такой вариант  
AnsiString AExt ;
AExt=cxGrid1DBCardView1->DataController->Values[ARecordIndex][cxGrid1DBCardView1KARTINKA->Index];
if (AExt=="bmp")TcxImageProperties(cxGrid1DBCardView1KARTINKA->Properties).GraphicClassName="TBitmap";
if (AExt=="jpg")TcxImageProperties(cxGrid1DBCardView1KARTINKA->Properties).GraphicClassName="TJPEGImage";
тоже не проходит,короче хз как его правильно реализовать

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 16:23 08-07-2009
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MagistrAnatol
Покажите полностью код обработчика события.
 
Добавлено:
Пусть есть колонка. Нужно присвоить свойство колонки Properties = Image. Дальше на закладке событий появится события Properies.

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 16:49 08-07-2009
jicoff

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MagistrAnatol
 
А почему нельзя сразу присвоить:
 
if (AExt=="bmp")  
  AGraphicClass  = __classid(Graphics::TBitmap);
else
if (AExt=="jpg")  
  AGraphicClass  =  __classid(TJPEGImage);
 
 
Зачем нужно память выделять new Graphics::TBitmap  или new TJPEGImage под объекты? Грид сам создаст объекты в зависимости от класса.
 
Добавлено:
Вообще-то код TcxImageProperties(cxGrid1DBCardView1KARTINKA->Properties) означает, что создается локальный объект типа TcxImageProperties и у него свойство GraphicClassName инициализируется значением "TBitmap".
 
TcxImageProperties(cxGrid1DBCardView1KARTINKA->Properties)->... и ((TcxImageProperties*)cxGrid1DBCardView1KARTINKA->Properties)->... не одно и тоже.

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 16:56 08-07-2009 | Исправлено: jicoff, 17:05 08-07-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
jicoff
перепробывал я вагон вариантов
вот последний
AnsiString AExt ;
AExt=cxGrid1DBCardView1->DataController->Values[ARecordIndex][cxGrid1DBCardView1KARTINKA->Index];
 
if (AExt=="bmp")
  AGraphicClass  = __classid(Graphics::TBitmap);
else
if (AExt=="jpg")
  AGraphicClass  =  __classid(TJPEGImage);
 
if(AExt=="bmp")
((TcxImageProperties*)cxGrid1DBCardView1KARTINKA->Properties)->GraphicClassName="TBitmap";
    else if(AExt=="jpg" || AExt=="jpeg")
((TcxImageProperties*)cxGrid1DBCardView1KARTINKA->Properties)->GraphicClassName="TJPEGImage";
    else if(AExt=="ico")
((TcxImageProperties*)cxGrid1DBCardView1KARTINKA->Properties)->GraphicClassName="TIcon";
    else if(AExt=="wmf")
((TcxImageProperties*)cxGrid1DBCardView1KARTINKA->Properties)->GraphicClassName="TMetafile";
 
 
причем обрабатывал и событие cxGrid1DBCardView1KARTINKAGetProperties
все всемя одна и таже ошибка битмап имейдж из нот валид - в табличке две записи
в одном блобе загнано bmp в другом jpg

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MagistrAnatol
Этот код нужно писать в обработчике события OnGetGraphicClass.

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 17:21 08-07-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот что я заметил при работе программы на Windows Server 2003 SP2.
 
Проект создаём на WinXP SP3, D2007 со всеми обновлениями. Dev43.
 
1. Кидаем на форму локализер (кроме него у меня ещё там три cxGrid`а, два cxDateEdit`а, один cxPageControl).
2. Прямо в дизайнере присваиваем ему имя файла.
3. Active := true
4. Выбираем русский язык.
5. Компилируем программу. Запускаем. Всё работает, всё на русском.
6. Копируем программу (без файла локализации) на сервак.
7. Запускаем....
8. Программа запускается, это видно в диспетчере задач и сразу закрывается без показа окна и без показа ошибок.

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 17:24 08-07-2009 | Исправлено: X11, 17:26 08-07-2009
volser

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

Цитата:
3. Active := true  

Может это делать программно поместив данный код в блок?

Код:
 
try
  Active := true;
except
  ..
end
 

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 17:29 08-07-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
volser это само собой. Я не зря выделил жирным текст: без показа ошибок.
Я понимаю, что всякие такие проверки - это дело рук программиста. По идее программа должна запуститься с выдачей ошибки, как это происходит на Win XP.


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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 17:41 08-07-2009
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
А 3. Active := true делается в дизайнере или программно?

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 17:45 08-07-2009
X11



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

Цитата:
3. Active := true
4. Выбираем русский язык.
5. Компилируем программу.  

Как видишь - в дизайнере.
Сначала загружаем язык, потом компилируем, потом запускаем на другом компе без файла локализации.

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 17:49 08-07-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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 3)
ShIvADeSt (31-12-2009 04:49): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=10884


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru