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

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

Автор: Dennica
Дата сообщения: 29.05.2007 10:57
xitsmex
Dronton2 прав. Рисовать можно только границы оставив рисование текста стандартному обработчику. Вот пример рисования границ без текста. Выдрал почти как есть и не упрощал:
Код: procedure TfrmCm.dbbtvPt_CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
const
BCOLOR = $00800000;
var
FOldColor: TColor;
ARect: TRect;
begin
ARect := AViewInfo.Bounds;
ACanvas.FillRect(ARect);

FOldColor := ACanvas.Brush.Color;
if (AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 0 then begin
AViewInfo.Borders := [bLeft, bRight, bBottom];
ACanvas.DrawComplexFrame(ARect, BCOLOR, BCOLOR, [bTop], 1);
end else begin
AViewInfo.Borders := [bLeft, bTop, bRight];
ACanvas.DrawComplexFrame(ARect, BCOLOR, BCOLOR, [bBottom], 1);
end;
ACanvas.Brush.Color := FOldColor;
end;
Автор: Truncate
Дата сообщения: 29.05.2007 10:58
Доюрый День.

Подскажите пожалуйста ответ на простой вопрос.

Как мне узнать по какому столбцу пользователь задает филдьтрацию.

Я хочу менять стиль Title столбца.

Спасибо.
Автор: Dennica
Дата сообщения: 29.05.2007 11:14
Truncate
А в каком событии ты пытаешся узнать? Например если из события OnGetHeaderStyle то можно просто проверить AColumn.Filtered...
Автор: Truncate
Дата сообщения: 29.05.2007 11:44
Dennica


в событии DataControllerFilterChanged.

Только я потом не могу найти свойство отвечающее за колонку по которой кликнул.

Было бы неплохо выбрал, что то и пометил это цветом, чтоб потом можно было не гадать где фильтр, а по цвету увидеть.
Автор: Dronton2
Дата сообщения: 29.05.2007 13:04
Truncate
Цикл по всем колонкам, для каждой колонки проверять, отфильтрована ли она:

Код: for i := tableView.columncount - 1 downto 0 do
begin
if tableview.columns[i].filtered then tableview.columns[i].styles.content := style1;
end;
Автор: Dennica
Дата сообщения: 29.05.2007 13:24
Truncate
Dronton2
тоже самое хотел предложить, т.к. всеравно нужно скидыватьстиль если колонку убрали из фильтра, поэтому нужен полный перебор

Код: for i := 0 to tView.ColumnCount -1 do
if tView.Columns[i].Filtered then
tView.Columns[i].Styles.Header := Style1
else
tView.Columns[i].Styles.Header := nil;
Автор: Truncate
Дата сообщения: 29.05.2007 13:45
Dronton2
Dennica



Ребята Большое спасибо так и сделал.
Автор: xitsmex
Дата сообщения: 29.05.2007 17:51
Dronton2
Dennica
В том то и беда, что это не override, а Event. Поэтому inherited вызвать нельзя. А если не указать ADone - границы перерисуются стандартным отрисовщиком. Копал в сторону TcxDataCellPainter, но ищу способ проще: как разделить определенные колонки горизонтальными и вертикальными линиями?
Автор: Dennica
Дата сообщения: 30.05.2007 09:01
xitsmex

Цитата:
А если не указать ADone - границы перерисуются стандартным отрисовщиком.

Ну я же дал рабочий пример... Поясню идею немного. Отрисовка ячейки в том числе и ее границ происходин на основание данных хранящихся в AViewInfo. Т.е. если нам например нужно убрать какую-то границу, убираем ее из AViewInfo

Код: AViewInfo.Borders := [bLeft, bRight, bBottom];
Автор: Poopkeen
Дата сообщения: 30.05.2007 09:27
Если окажется не в топик - сильно не пинайте пожалуйста
неоднократно слышал об инсталляторе для эхотаговых компонентов от Feandy
подскажите пожалуйста - где его можно раздобыть?
Автор: vidic777
Дата сообщения: 30.05.2007 10:44
Poopkeen
Вам нужно почитать в шапке этого топика "Полезная информация" про обменник, они там.
http://forum.ru-board.com/topic.cgi?forum=35&bm=1&topic=35615#1
Автор: HalfLitre
Дата сообщения: 30.05.2007 12:49
Может кто сталкивался :
В девках от 27 apr 2007, при обычном скролинге
периодично выскакивает
error : -259 SQL error:Cursor not open.
Закроешь, откроешь форму, уже все OK.

Форма простая до безобразия:
Query в связке с TcxGridDBTableView.

На предыдущих версиях такого не было.

Автор: Dronton2
Дата сообщения: 30.05.2007 13:37
HalfLitre
Никогда не сталкивался.
Возможно, зависит от настроек базы данных (типа, закрывать курсор после выборки блока данных, или по тайм-ауту).
Какая БД? Какие компоненты доступа в БД?
Автор: HalfLitre
Дата сообщения: 30.05.2007 14:48
Delphi 7 + IDAC + Informix
Но такие же настройки на предыдущих версиях работали на ура.
Видать придеться откатываться, жаль.
Автор: xitsmex
Дата сообщения: 30.05.2007 20:40
Dennica
Да что тут сказать, СПАСИБИЩЕ! Что так все разжевал. В принципе, я понял, что все работает, после первого объяснения, поэкспериментировав, но был на работе, не мог ответить.
Автор: DrLo
Дата сообщения: 31.05.2007 10:10
После перекомпиляции проекта с девками от 27 apr 2007, прога перестала запускаться на машинах с Win2000?!
На WinXP и Win2k3 всё нормуль. С предыдущими версиями девок таких граблей, кажись, не было...
Может кто знает как порешить ентот баг?
Автор: Dennica
Дата сообщения: 31.05.2007 10:33
DrLo
А из-за чего проблемма локализовать не удалось? У меня была проблемма с gdi+ в этом релизе на машинках с w2k.
Автор: DrLo
Дата сообщения: 31.05.2007 10:36

Цитата:
У меня была проблемма с gdi+ в этом релизе на машинках с w2k

А как решил проблему? У меня прога на Win2000 вываливается при старте, появляется стандартное виндовое окошко что создан журнал ошибок (или что-то наподобие того)
С локализацией нет проблем...
Автор: Dennica
Дата сообщения: 31.05.2007 10:48
DrLo
про лаколизацию я немного не то имел ввиду =)) ну да ладно
с gdi+ я сравнительно недавно постил как ее решить, ну да повторюсь бо искать лень
Вот ссылка на топик с описанием и решением этой проблеммы
https://www.devexpress.com/Support/Center/ViewIssue.aspx?issueid=AB12996
Исправление нужно внести в 3 файла после чего перекомпилять девок. Т.е. я отложил себе в сторону измененные файлы, сделал деинсталяцию и установку заново, перед тем как компилять подменил файлы и скомпилил. (инстал от feandy)

Автор: DrLo
Дата сообщения: 31.05.2007 10:59
Dennica
СПАСИБО, БРАТ!!! Спас. То что надо, похоже

Только, блин, перекомпилировать инсталляком от мэтра и подменять файлы (у меня teechart 7.x так что приходиться потом пару пакетов перекомплять из IDE) - не наш метод. Похоже назрела необходимость состряпать скриптик для перекомпилляции. Сделаю - выложу.
Автор: DrLo
Дата сообщения: 31.05.2007 13:14
Ну что-же, готово...
Скрипты для перекомпляции Developer Express Visual Component Library для Delphi 7 и Delphi 2006
_http://rapidshare.com/files/34409065/Ru-Board_DevExpress_Addin_from_DrLo.rar.html

Включено исправление для GDI+ ver x.25 девок, поддержка TeeChart Pro 7.x, поддержка устаревших пакетов QuantumGrid 3 и т.п. для Delphi 2006.
Сделаем нашу жизнь проще!
Для остальных версий дельфы и билдера присылайте свои варианты - всключим всё в единый addin-пак.
Автор: yurkinsys
Дата сообщения: 31.05.2007 16:48

Цитата:
Z_E_T:
Привет всем!!!!
У меня вопрос по компоненту cxGrid. Есть табл в нём обно поле типа DateTime, в cxGrid в Properties ставлю значение DateEdit, при редактировании этого поля возникает ошибка:
Overflow while converting varian of type(integer) into type(Data). Я не пойму почему она возникает, как от неё избавится?


Если у тебя Билдер6 поставь UpdatePack4, если нет то постави Update для твоей версий(Builder/Delphi).
Автор: VadimLou
Дата сообщения: 31.05.2007 19:24
DrLo
> скипты ...
а не на рапиду, плиз выложи, а то там постоянные таймауты ...
Вот куча других шарингов ...
_xttp://elv1s.ru/files/browsers/uploader.html
Автор: bvg82
Дата сообщения: 01.06.2007 09:06
Подскажите кто нить, как в cxGrid1DBTableView1 использовать мультиселект.... пробовал записывать в массив выделенные строки, но что то неправильно как то работает или я не так делаю (records[i]:=cxGrid1DBTableView1.Controller.SelectedRows[id].RecordIndex;)

Лучше конечно примерчиком.... Просто у меня в grid выводится справочник, а из grida выбираются конкретные люди и заносятся в другую таблицу.... База interbase...
Автор: Dronton2
Дата сообщения: 01.06.2007 09:58
bvg82
Вот пример, записывающий в StringList значения колонки NAME (в отмеченных строках):

Код:
var i: integer;
aList: TStringList;
...
for i := 0 to cxGrid1DBTableView1.Controller.SelectedRecordCount -1 do
begin
aList.Add(cxGrid1DBTableView1.Controller.SelectedRecords[i].Values[cxGrid1DBTableView1.GetColumnByFieldName('NAME').Index]);
end;
Автор: DrLo
Дата сообщения: 01.06.2007 10:39
VadimLou
Зеркало
Скрипты для перекомпляции Developer Express Visual Component Library для Delphi 7 и Delphi 2006
_http://ifolder.ru/2204546

Автор: bvg82
Дата сообщения: 01.06.2007 11:24
На строку for i = 0 to cxGrid1DBTableView1.Controller.SelectedRecordCount -1 do
ругается
(149): For loop control variable must be simple local variable
Автор: DGM001
Дата сообщения: 01.06.2007 11:41
Сделал еще зеркало
Скрипты для перекомпляции Developer Express Visual Component Library для Delphi 7 и Delphi 2006
_http://slil.ru/24449331
Автор: VadimLou
Дата сообщения: 01.06.2007 11:44
DrLo / DGM001 thanks !
Автор: zver
Дата сообщения: 01.06.2007 11:45
Для работы со скинами (dxSkinsCoreC10) и как выяснилось с dcldxRibbonC10
в DevExpress V*.25 под Win2000 нужна библиотека "Gdiplus.dll" - это и написано в доке по "ExpressSkins Library".
Хотелось бы, чтобы если система Win2000, то обычный стиль компонента, а если XP, то
скин какой-нить типа "Caramel".
Иначе файлик "Gdiplus.dll" надо каждый раз копировать - неудобно.
--Всё в одном ".exe" - одно из главных достоинств Builder-a над Visual Studio.
После перекомпиляции с исправленным GUI+ скины вообще error выдают под C++ Builder 2006, всё остальное работает.

Никто не сталкивался?

Добавлено:
У кого есть скрипт для перекопмеляции DevExpress под
С++ Builder 2006 -
Выложите пожалуйста!!!, ато перекомпиляция ручками занимает от 0,5 до 2 часов...

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182

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


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