Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Использование DevExpress 2

Автор: skinash
Дата сообщения: 07.08.2007 11:50
DrunkFlier
Не знаю, я попробовал, у меня всё работает. Единственное, что у меня не простая dll, а содержащая InProc сервер. DevExpress здесь не причём. Ищи ошибку у себя.
Автор: DrunkFlier
Дата сообщения: 07.08.2007 14:26
Если со стандарными компонентами форма вызывается без проблем, а как только появляется компонент от Девок - сразу вылазит Access Violation. То наверное DevExpress здесь причём
Автор: PaulNBir
Дата сообщения: 08.08.2007 11:30
skinash

Цитата:
А вот второй пункт вопроса остаётся открытым

мне кажется, что для этой задачи больше подойдет TcxImageComboBox. он как раз заточен под отображение подобных данных
Автор: skinash
Дата сообщения: 08.08.2007 12:34
PaulNBir
TcxImageComboBox нужны уже готовые картинки, причём маленькие (для показа в Edit'e) и большие (для показа в DropDownList). В моей же задаче картинки генерятся, в зависимости от стиля пера. Как я уже раньше говорил, в обычном TComboBox таких проблем нет.
Автор: korobovmax
Дата сообщения: 08.08.2007 13:57
Решил свой вопрос.

Перекрываю OnCustomDraw ячейки (у меня наследник TcxGridDBTableView) и в нем вызываю свой же OnGetContentStyle так:
OnGetContentStyle(Sender, AViewInfo.GridRecord, AViewInfo.Item, TempStyle), где в TempStyle запишется нужный цвет.
Дальше банально:
if TempStyle <> nil then
ACanvas.Brush.Color := TempStyle.Color;

Все, теперь цвет выделения свой.
Автор: PaulNBir
Дата сообщения: 08.08.2007 14:59
skinash
тогда, например, вот так:

Код:
...........
Brush.Style := TBrushStyle(AIndex);
if odFocused in AState then
begin
if Brush.Style = bsClear then
Brush.Color := clWhite
else
Brush.Color := clBlack;
Pen.Color := clBlack;
end
else
if odSelected in AState then
begin
...........
Автор: skinash
Дата сообщения: 08.08.2007 15:14
PaulNBir
Спасибо, помогло. Теперь бы с логикой разобраться, чем odFocused отличается от odSelected. Ведь в таком варианте получается такая фигня:[more] [/more], то есть цвет пера (Pen) подсвеченного пункта должен быть белым (как у текста), а не чёрным.

...
Нет, думаю здесь AState'ами не обойтись. Он ведь одновременно один и тот же Item рисует одновременно и в Edit'е и в DropDownList...
Автор: PaulNBir
Дата сообщения: 08.08.2007 15:46
skinash
попробуй заменить odFocused на odComboBoxEdit.
проблема не в отличии - это я там слегка ошибся. главное отловить какое состояние имеет сам эдит и не имеет выделенный элемент списка (odSelected есть у эдита, поэтому на белом фоне все и рисовалось белым)
Автор: skinash
Дата сообщения: 08.08.2007 19:50
PaulNBir
Вот такую логику я забабахал:

Код: if (odFocused in AState) and not AControl.DroppedDown then
begin
case Brush.Style of
bsSolid: Brush.Color := clBlack;
bsClear: Brush.Color := clHighlight;
else
Brush.Color := clWhite;
end;
Pen.Color := clWhite;
end
else if odComboBoxEdit in AState then
begin
if Brush.Style = bsClear then
Brush.Color := clWhite
else
Brush.Color := clBlack;
Pen.Color := clBlack;
end
else if odSelected in AState then
begin
case Brush.Style of
bsSolid: Brush.Color := clBlack;
bsClear: Brush.Color := clHighlight;
else
Brush.Color := clWhite;
end;
Pen.Color := clWhite;
end
else
begin
if Brush.Style = bsClear then
Brush.Color := clWhite
else
Brush.Color := clBlack;
Pen.Color := clBlack;
end;
Автор: jicoff
Дата сообщения: 09.08.2007 16:03
skinash

Вообще-то Selected не всегда Focused, а Focused всегда Selected.
Автор: skinash
Дата сообщения: 09.08.2007 21:11
jicoff
Это понятно. Но как это может помочь в моём случае?
Автор: skinash
Дата сообщения: 10.08.2007 11:58
Новый вопрос, может быть и не по теме.
У меня в Demos'ах (ExpressQuantumGrid) при открытии какого-либо примера design-time сбиваются настройки базы данных. Пишет Path not found. File: C:..\..\Data\Cars.DB.
Но если компилировать пример не открывая форму, то exe-шник получается работающий (грид с данными). Подскажите, plz, в каком направлении копать?
Автор: yuish
Дата сообщения: 10.08.2007 15:01
skinash
на сколько я помню, там путь к базе прописан относительный, пропиши реальный путь к данным в компоненте доступа
Автор: skinash
Дата сообщения: 10.08.2007 15:40
yuish
Не понял, если можно поконкретнее, plz.
Автор: yuish
Дата сообщения: 10.08.2007 16:13
skinash
я жговорю, точно не помню, давно демки не смотрел. но там есть компонент доступа к базе, типа адо. и в ней прописан путь к базе, что то типа ../путь. (относительно папки где лежит демка) а ты пропиши полный - типа C:\Program Files\Developer Express Inc.. и т.д.
Автор: skinash
Дата сообщения: 10.08.2007 18:55
yuish
О, нашёл! В DataModule компонент TDatabase. У него в контектстном меню "Database Editor...". Вот там то и можно найти "PATH=..\..\Data".

Спасибо за сочувстие.
Автор: xRay
Дата сообщения: 13.08.2007 07:55
jicoff
Я уже разобрался
вот так надо (привешиваемся на CustomDrawGroupCell у cxGrid1DBTableView):

Цитата:

procedure TConvertDBGridDemoMainForm.cxGrid1DBTableView1CustomDrawGroupCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableCellViewInfo; var ADone: Boolean);
var
AList: TList;
begin

AList := TList.Create;

try
Sender.DataController.Groups.LoadRecordIndexesByRowIndex(AList, AViewInfo.GridRecord.Index);
if AViewInfo.Text = 'SECONDNAME : Caan' then ACanvas.Brush.Color := $0080FFFF;
finally
AList.Free;
end;

end;
Автор: jicoff
Дата сообщения: 13.08.2007 12:02
xRay

Что-то не понял: ответ на какую тему? И потом, раз уж пример приведен, то накой нужен AList, если он нигде не используется?
Автор: VAbramyak
Дата сообщения: 13.08.2007 17:33
Всем привет!
Нужна помощь по dxDBTreeList.
Задача следующая, есть дерево населенный пункт/улица/дом.
Соответственно нужно выбирать значения из этого дерева для фильтра. Требуется в DBTreeList около каждой node прорисовывать CheckBox. Необходимо реализовать каскадное чеканье: изменение свойства CheckBox каждого узла должно приводить к наследованию этого свойства потомками, а предки должны принимать три возможных значения "выбранности" (mNonSel, mHalfSel, mSel). Как это реализовать?
Автор: IgorXI
Дата сообщения: 14.08.2007 06:57
у меня вопрос по dxTreeList
как у него можно реализовать PullFocusing квантумгрида, т.е. что-бы курсор бегал за мышкой при нажатой левой кнопке.
Автор: neznayka3
Дата сообщения: 14.08.2007 13:13
Надо пробежать по записям и узнать их состояние.

Код: with dxMemData1 do
begin
First;
while not eof do
begin
if "Modified" then
// изменена/добавлена
else
// не изменена
Next;
end;
end
Автор: scratch
Дата сообщения: 15.08.2007 09:31
Всем привет.
Юзаю июньский шедуллер для написания проги по бронированию номеров в гостинице. Все ништяк, но когда ресурсов больше 10 (TimeGridView), и окно распахнуто на весь экран, то начинаются дичайшие тормоза с отрисовкой, селектом.. вобщем со всем. И это без кастом дровинга и прочих красявостей... Заказчик хочет видеть не 3 номера на весь экран, а хотя бы штук 25... Что делать не знаю... к обычным гридам возвращаться нет никакого желания.. Что посоветуете?
Автор: CryoZ
Дата сообщения: 15.08.2007 12:35
нужна помощь.
Использую DB Quantum Grid 6.
Есть датасет, где создано сопоставляемое поле. Это же поле есть в сетке.
При попытке создать фильтр с программной помощью именно на это поле - вылетает с ошибкой преобразования типа Variant. При применении этого же кода на другие столбцы - все проходит идеально. Код брал как из справки, так и из Базы Знаний. Версия стоит июньская 2007 года.
Причем при добавлении фильтра вручную все проходит нормально.
После исследований я выяснил, что фильтр тупо пытается сконвертить мою строку зачем-то в double. Так как ему дают стринг, он вываливает эксепшн.
Куда копать, и возможно побороть?

PS. Проблему решил. Оказывается фильтр по DisplayText невозможен, в случае с сопоставляемым полем нужно указывать значение ключевого поля
Автор: Dennica
Дата сообщения: 15.08.2007 13:16
CryoZ
Чес говоря я ответа не знаю, но как вариант могу предложить попробовать в качестве значения передать не строку, а раз поле составное - вариантный массив. VarArrayCreate ...

Добавлено:
neznayka3

Цитата:
Есть cвойства типа "UpdatesPending"/"Modified" для этого случая?
ЗЫ Здесь сказали, что либо добавлять поле, либо перекрываеть метод UpdateStatus: TUpdateStatus. Есть другие варианты?


В этом случае думаю других вариантов нет. Лучше всеже остановаиться на доп. поле.

Добавлено:
IgorXI
Вот тебе идея, нуждается в доработке напильником...
Код: procedure TForm2.cxTreeList1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
with cxTreeList1.HitTest do begin
if HitAtNode then
if HitNode <> cxTreeList1.FocusedNode then
HitNode.Focused := True;
end;
end;
Автор: avkh
Дата сообщения: 15.08.2007 14:48
В какую библиотеку сейчас входит TcxPropertiesStore?
Переставил Delphi и DevExpree поставил посвежее - теперь у меня нет такого компонента.
Автор: korobovmax
Дата сообщения: 15.08.2007 14:54
avkh, в пакете с КвантумГридом есть. В других не встречается (беглый просмотр офф. сайта).
Автор: avkh
Дата сообщения: 15.08.2007 14:58
Странно, у меня 6.25 стоит, но TcxPropertiesStore нету (((
Автор: korobovmax
Дата сообщения: 15.08.2007 15:08
avkh, посмотрите, у вас есть файл ...\Developer Express Inc\CX Library\Delphi <Версия delphi>\Sources\cxPropertiesStore.pas"?
Автор: avkh
Дата сообщения: 15.08.2007 15:20
Файл был, компонента не было.
Входит он в ExpressLibrary, переставил - появился.
Вопрос закрыт, спс.
Автор: yuish
Дата сообщения: 15.08.2007 15:32
CryoZ
у меня была подобная проблема, но с раскраской полей в гриде. я просто свой код поместил в
try
....
except
end;

проблема пропала, раскраска проходит как задуманно

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182

Предыдущая тема: Язык программирования на русском языке


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.