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

» Использование DevExpress (часть 4)

Автор: X11
Дата сообщения: 20.01.2010 09:16
vladman, начинаю "догонять". У меня стиль №2 для отдельной строки имеет свойства по-умолчанию, а стиль №1 для всго верт. грида имеет изменённые свойства. Поэтому грид и закрашивает всё подряд.
Я вот сделал так. У стиля №2 для отдельной строки изменил цвет на clWindow (был clDefault) и теперь доволен, как слон, т.к. теперь строка отличается от всего грида. Но всё рано считаю это багом, а не фичей. Ведь я назначил отдельный стиль отдельной строке? Назначил. Пусть даже со свойствами по-умолчанию. А значит строка должна отличаться от общего стиля грида.

Добавлено:
в вертикальном гриде есть ещё в стилях свойство StyleSheet. Там невозможно выбрать стиль почему-то.

Добавлено:
Всё, допёр.

Добавлено:

Цитата:
Достаточно выполнить поиск в исходных кодах ExpressBars 6 строки "class function BarToolbarBrush" и вы сразу бы заметили что TdxBarItemControlEnhancedPainter был переименован либо включен в TdxBarPainter.

Ну там не только это. Там хватает несовместимостей. А я в девках не на столько опытный

Добавлено:
Проблема с сортировкой в cxGrid (bunded).
Есть функция, которая выводит некоторые колонки грида в текст для дальнейшей печати информации на матричном принтере (в итоге получается copy %1 prn).
Эта функция имеет входной параметр DataSet: TDataSet.

Итак. Пользователь сортирует грид по колонке цена. Нажимает печать.
В функцию передаётся датасет:

Код: PrintToMatrix(TcxGridDBTableView(TcxGrid(TcxGridSite(ActiveControl).Container).ActiveView).DataController.DataSet,
Автор: sam291074
Дата сообщения: 20.01.2010 21:43
Вопрос по cxTrackBar.

При клике мышкой слева или справа от ползунка он перемещается на 1 позицию соответственно.
Можно ли сделать так, что нажал кнопку мыши, держишь ее и ползунок перемещается непрерывно?
Или хотя бы определить слева или справа произошел клик?
Автор: vladman
Дата сообщения: 21.01.2010 01:26
sam291074

Цитата:
При клике мышкой слева или справа от ползунка он перемещается на 1 позицию соответственно.
Можно ли сделать так, что нажал кнопку мыши, держишь ее и ползунок перемещается непрерывно?

Можно. Обрабатывайте события onMouseDown и onMouseUp, в которых включайте и выключайте таймер соответственно. Таймер настройте на срабатывание, например, каждые 100мс и при срабатывании увеличивайте или уменьшайте свойство Position вашего cxTrackBar.

Цитата:
Или хотя бы определить слева или справа произошел клик?

Вот как раз это не "хотя бы", а самое нетривиальное в этой проблеме. Чуть позже постараюсь что-то придумать по этому поводу.
ЗЫ. Обратите внимание на свойство cxTrackBar.Properties.ThumbStep со значением cxtsJump.
Автор: afiget
Дата сообщения: 21.01.2010 02:44
X11
Доступ к отсортированным данным:

Код:
for i := 0 to View1.ViewData.RecordCount - 1 do
if View1.ViewData.Records[i].IsData then
begin
r[2]:=View1.ViewData.Records[i].Values[View1amount.Index]; // значение поля
r[3]:=View1.ViewData.Records[i].DisplayTexts[View1unit_id.Index]; // видимое значение для lookup editor
end;
Автор: X11
Дата сообщения: 21.01.2010 08:57
afiget, спасибо. Я понял. Нужно создать в памяти набор данных и в него "залить" данные из грида.
Автор: vladman
Дата сообщения: 21.01.2010 09:31
sam291074

Цитата:
Или хотя бы определить слева или справа произошел клик?

В случае горизонтальной ориентации контрола попробуйте так:

Код: Type
TcxTrackBarAccess = class(TcxCustomTrackBar);
TcxTrackBarViewInfoAccess = class(TcxCustomTrackBarViewInfo);
....
procedure <YourForm>.<YourcxTrackBar>MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if TcxTrackBarViewInfoAccess(TcxTrackBarAccess(Sender).ViewInfo).ThumbRect.Left < X then
Self.Caption := 'After'
else Self.Caption := 'Before';
end;
Автор: victorman2010
Дата сообщения: 21.01.2010 09:38
Доброго времени суток, подскажи пож как отсортировать данные в cxGrid при заполнении. Данные заполняются из xml файла через clientdataset. Свойство SortByDisplayText у колонки не помогло. Спасибо.
Автор: X11
Дата сообщения: 21.01.2010 09:56
У каждой колонки есть SortIndex

Добавлено:
А SortByDisplayText влияет на то, КАК будет отсортирована колонка. По тем данным которые видит пользователь или по тем данным которые физически хранятся в наборе данных?
Автор: victorman2010
Дата сообщения: 21.01.2010 10:09
Спасибо, а какой индекс поставить чтобы по возрастанию сортировались записи? И есть ли значение на какое событие вешать?

Добавлено:
Спасибо уже нашел:
cxGrid2DBTableView1ddd.SortIndex := 0;
cxGrid2DBTableView1ddd.SortOrder:=soAscending;
Автор: OwnerZ
Дата сообщения: 21.01.2010 12:14
Добрый день.

Столкнулся с такой проблемой.

Создал cxDataBandedTable хочу сохранить настройки таблицы порядок столбцов но ничего не получается.

Сохраняю
cxDataBandedTable.Bands.Items[i].Position.BandIndex
cxDataBandedTable.Bands.Items[i].Position.ColIndex

Востанавливаю. Строки стоят не так как я их сохранил. VisibleColIndex тоже непомог


подскажите кто нибудь делал чтото подобное или пользуетесь cxPropertiesStore
Автор: vladman
Дата сообщения: 21.01.2010 13:21
OwnerZ
Посмотрите методы TcxCustomGridView.StoreTo... и TcxCustomGridView.RestoreFrom... Т.е.
TcxCustomGridView.RestoreFromRegistry
TcxCustomGridView.RestoreFromStorage
TcxCustomGridView.RestoreFromStream
TcxCustomGridView.StoreToIniFile
TcxCustomGridView.StoreToRegistry
TcxCustomGridView.StoreToStorage
TcxCustomGridView.StoreToStream
Example: TcxCustomGridView.StoreToRegistry, TcxCustomGridView.RestoreFromRegistry:
ms-help://borland.bds5/ExpressQuantumGrid6.BDS5/ExpressQuantumGrid6/Example_StoreToRegistry_RestoreFromRegistry.htm
Автор: Shadi
Дата сообщения: 21.01.2010 13:41
X11

По поводу поиска с подсветкой попробуй так:


Код: procedure TForm1.SpeedButton1Click(Sender: TObject);
var
I, FoundPos, StartPosition: integer;
AColumn : TcxGridDBColumn;
ATextToFind : String;
AEdit : TcxRichEdit;
AFind : Boolean;
begin
ATextToFind := 'Limited';
with cxGrid1DBTableView1 do
begin
AColumn := GetColumnByFieldName('Event_Description');
for I := 0 to ViewData.RecordCount - 1 do
if ViewData.Rows[I].IsData then
begin
ViewData.Rows[I].Focused := True;
with Controller.EditingController do
begin
ShowEdit(AColumn);
AEdit := TcxRichEdit(Edit);
StartPosition := 0;
AFind := True;
while AFind do
begin
FoundPos := AEdit.FindText(ATextToFind, StartPosition, Length(AEdit.Text), [stWholeWord]);
if (FoundPos >= 0) then
begin
AEdit.SelStart := FoundPos;
AEdit.SelLength := Length( ATextToFind);
AEdit.SelAttributes.Color:=clRed;
AEdit.SelLength:=0;
StartPosition := FoundPos + 1;
end
else
AFind := False;
end;
end;
end;
end;
end;
Автор: sam291074
Дата сообщения: 21.01.2010 18:22
vladman
Спасибо, воспользовался вариантом с таймером.
Автор: OwnerZ
Дата сообщения: 22.01.2010 08:28

Цитата:
vladman

Full Member    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модераторуOwnerZ
Посмотрите методы TcxCustomGridView.StoreTo... и TcxCustomGridView.RestoreFrom... Т.е.
TcxCustomGridView.RestoreFromRegistry
TcxCustomGridView.RestoreFromStorage
TcxCustomGridView.RestoreFromStream
TcxCustomGridView.StoreToIniFile
TcxCustomGridView.StoreToRegistry
TcxCustomGridView.StoreToStorage
TcxCustomGridView.StoreToStream
Example: TcxCustomGridView.StoreToRegistry, TcxCustomGridView.RestoreFromRegistry:
ms-help://borland.bds5/ExpressQuantumGrid6.BDS5/ExpressQuantumGrid6/Example_StoreToRegistry_RestoreFromRegistry.htm



СПАСИБО. Я разобрался надо было хранить ещё третий параметр Index

но я забил и воспользовался cxPropertiesStore




У меня возник другой вопрос как проверить DataType Колонки в CxGrid что нить такое
if Grid.Columns[i].Field.DataType =


Только найти немогу подскажите куда смотреть. Спасибо


Добавлено:
А ещё такой вопрос? Как пробежатся по конкретному столбцу и вытащить все данные из него.

Спасибо
Автор: vladman
Дата сообщения: 22.01.2010 14:24
OwnerZ

Цитата:

У меня возник другой вопрос как проверить DataType Колонки в CxGrid что нить такое

<YourcxGridDBColumn>.DataBinding.ValueType


Цитата:
А ещё такой вопрос? Как пробежатся по конкретному столбцу и вытащить все данные из него.


Код: for i := 0 to <YourcxGridTableView>.DataController.RecordCount - 1 do
<YourValue> := <YourcxGridTableView>.DataController.Values[i, <YourGridColumn>.Index] =
Автор: OwnerZ
Дата сообщения: 22.01.2010 14:50

Цитата:
vladman



Спасибо больше.


Добавлено:

Цитата:
vladman


Подскажи пожалуйста а как узнать есть ли у колонки в Summary колонки и сколько их там

Спасибо

Автор: vladman
Дата сообщения: 23.01.2010 00:59
OwnerZ

Цитата:
Подскажи пожалуйста а как узнать есть ли у колонки в Summary колонки и сколько их там

Если вы имели ввиду FooterSummary, то решение может выглядеть так:

Код: vSummaryCount := 0;
for i := 0 to <YourcxGridDBTableView>.DataController.Summary.FooterSummaryItems.Count - 1 do
if TcxGridDBTableSummaryItem(<YourcxGridDBTableView>.DataController.Summary.FooterSummaryItems[i]).Column = <YourcxGridDBColumn> then inc(vSummaryCount);
Автор: makz
Дата сообщения: 23.01.2010 05:37
Скажите пожалуйста, как сделать кнопки в inplaced editor'e(ну у combobox например) в tcxdbverticalgrid транспарентными? Т.е. если я вставляю глиф вместо стандартного треугольника, то он получается на белом фоне, а не прозрачном.
____
Сам нашел: GetImage вместо GetBitmap.
Автор: victorman2010
Дата сообщения: 23.01.2010 15:00
Подскажите пож где можно скачать DevExpress для BDS 2009. FastReport 4+ тоже интересуют.
Спасибо.
Автор: makz
Дата сообщения: 23.01.2010 15:22
victorman2010
Внимательнее шапку читать. http://forum.ru-board.com/topic.cgi?forum=35&topic=43303&start=2480
Автор: OwnerZ
Дата сообщения: 25.01.2010 07:48
vladman

Спасибо большое за Summary.

Порыскал по форуму но так и не нашел.

Подскажите пожалуйста как программно снять "выделение". С выделенных строк.
Автор: vladman
Дата сообщения: 25.01.2010 09:17
OwnerZ

Цитата:
Порыскал по форуму но так и не нашел.
Подскажите пожалуйста как программно снять "выделение". С выделенных строк.

Можно рыскать и в хелпе.
TcxCustomDataController.ClearSelection - ms-help://borland.bds5/ExpressDataController.BDS5/ExpressDataController/IDH_TcxCustomDataController_ClearSelection.htm
т.е. <YourcxGridTableView>.DataController.ClearSelection;
Автор: OwnerZ
Дата сообщения: 25.01.2010 09:47

Цитата:
vladman


Блиннн точна вот про
ClearSelection даже неподумал как то все время наоборот искалось Selection.Clear

Ещё раз спасибо.
Автор: X11
Дата сообщения: 25.01.2010 11:56
У TcxImage есть свойство Caption, можно как-то заставить TcxImage показать Caption, например под картинкой?

Добавлено:
У TcxImage есть свойство Hint, но нет свойства showhint. ParentShowHint установил в false, но hint не показывается.
Dev 47
Автор: Cryogen2003
Дата сообщения: 25.01.2010 14:36
Добрый день. Есть маленькая проблемка, не понимаю в чем она.
После того, как кидаю на форму компонент dxComponentPrinter, форма при запуске создается где-то около 5-8 секунд. Не пойму в чем проблема. Как-нибудь можно это решить? Причем такое происходит не только на моем компе, но и на других компах тоже.
Автор: vladman
Дата сообщения: 25.01.2010 17:16
X11

Цитата:
У TcxImage есть свойство Caption, можно как-то заставить TcxImage показать Caption, например под картинкой?

Use the Caption property to specify the text displayed within an image editor. This text is visible only if the image editor contains no image (the Picture property has no assigned image).
А вообще можно поставить под картинкой label и выводить в него текст из TcxImage Caption

Добавлено:

Цитата:
У TcxImage есть свойство Hint, но нет свойства showhint. ParentShowHint установил в false, но hint не показывается.
Dev 47

Такое свойство есть, но оно не published а public. выполните <YourcxImage>.ShowHint := True; в onCreate формы.
Автор: Man Without Face
Дата сообщения: 26.01.2010 09:20
Добрый день, поставил devExpress v48 (CodeGear 2009). Все стало без проблем, только компонента dxStatusBar нету (переустановил еще раз, тоже самое). В чем может быть проблема? Спасибо.
Автор: fortezza
Дата сообщения: 26.01.2010 13:58
Здраствуйте, где находятся настройки для поля группировки (на которое перетаскиваются поля таблицы)?
Можно ли его убрать?
Какое свойство меняет текст "Drag column..."

Спасибо.
Автор: Man Without Face
Дата сообщения: 26.01.2010 14:13
fortezza

Цитата:
Здраствуйте, где находятся настройки для поля группировки (на которое перетаскиваются поля таблицы)?
Можно ли его убрать?


TableView - OptionsView - GroupByBox - false
Автор: xokc
Дата сообщения: 26.01.2010 20:25
fortezza
Нет такого свойства. Если нет желания пересобирать исходники, то можно воспользоваться, например, перезагрузкой этого сообщения из ресурсов. Или юзать TcxLocalizer.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки


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