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

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

Автор: vai
Дата сообщения: 19.12.2006 16:11
Ребята может кто сталкивался и поможет

В QuantiumGrid 6 для tcxGridDbChartView выполняю функцию StoreToStream сохранения View в поток :
View.StoreToStream(St,[])

потом выполняю функцию RestoreFromStream восстановление из потока:
View.RestoreFromStream( St,False,False,[])

ПРИ ВЫПОЛНЕНИИ RESTORE ПРОИСХОДИТ ОШИБКА
project AAA reised exception class EReadError with message 'Invalid property value'

ПО МОЕМУ ЭТО БАГ - если есть кто из зарегестрированных пользователей DevExpress
может напишете разработчикам чтобі исправили в следующей версии


Кстати если использовать StoreToINI и RestoreFromINI то ошибка не возникает. СТРАННО

Очень жду помощи.
Спасибо заранее

Автор: xokc
Дата сообщения: 19.12.2006 19:07
vai
а с 5-м гридом такое нормально проходило?
Автор: Alex47
Дата сообщения: 19.12.2006 21:54
ArtemiyUO

TableView.Controller.IncSearchingText.
Автор: gazgazgaz
Дата сообщения: 20.12.2006 09:02
Проблема с использованием cxDBPivotGrid мне нужно отобразить очень много информационных колонок (по которым не надо делать групировку просто отобразить) в RowArea можно ли это как-то сделать или хотяб скролить их как колонки с данными. Помогите пожалйста чайнику первый раз с этим гридом дело имею.
Автор: vai
Дата сообщения: 20.12.2006 09:19
xokc

Да в 5-м гриде все было ок
Да собственно и в 6-м тоже все ок для всех View кроме tcxGridChartView
Автор: ArtemiyUO
Дата сообщения: 20.12.2006 11:08
Уважаемые подскажите пожалуйста, как оптимальнее и лучше всего заставить грид перерисовать записи.
Я в BandedViewStylesGetContentStyle
в зависимости от внутренних условий раскрашиваю грид. Хочу что бы при изменении этих условий тут же отображались изменения.
Щас обновляю через Grid.Invalidate(True);

Наверно есть более правильные методы.
Автор: yuish
Дата сообщения: 20.12.2006 11:40
jicoff
пример совсем мутный. в результате его пробы - меняется полностью строка.

Вопрос всем, может все таки у кого нить есть решение вопроса - поменять стиль в одной конкретной ячейки вертикал грида, в зависимоти от данных. ну например число меньше нуля - стиль изменился только в этой ячейки
Автор: sunduk4
Дата сообщения: 20.12.2006 11:59
ArtemiyUO
a onCustomDrawCell не подходит?
Автор: yuish
Дата сообщения: 20.12.2006 12:28
к предыдущему сообщению
делаю

procedure Tfrm_form.cxDBVerticalGrid1StylesGetContentStyle(Sender: TObject;
AEditProp: TcxCustomEditorRowProperties; AFocused: Boolean;
ARecordIndex: Integer; var AStyle: TcxStyle);
begin

if cxDBVerticalGrid1FieldSum.Properties.Values[1]<0 then
AStyle := dmode.redstyle
else AStyle := dmode.bluestyle;

end;

но в этом случае меняется цвет всех ячеек в гриде если хоть в одно мсумма меньше 0. а надо только в конкретной.
Автор: Alex47
Дата сообщения: 20.12.2006 16:31
yuish

Цитата:
Как раскрасить ячейку в вертикал гриде при определенном значении.


По этому поводу есть конкретный пример в Help (если значение ячейки > 300, то выводится красным цветом):

[more]
Description
The OnDrawValue event is fired when grid row cell values need repainting.

The Sender parameter specifies the vertical grid to which the row belongs.
The ACanvas parameter specifies the surface being painted.
The APainter parameter represents the painter object used for default painting. You can use the interface provided by the object to paint the cell value using the current style settings.
The AValueInfo parameter represents an object containing view information about the current cell value.
The Done parameter specifies whether the default painting routines should be suppressed. Set the parameter to True, to cancel default painting; set it to False, to allow default painting. In the latter case, the changes you make will be discarded.

The following code shows an OnDrawValue event handler that displays HP row values greater than 300 in red:

//Delphi
procedure TStylesSimpleDemoMainForm.cxDBVerticalGridDrawValue(
Sender: TObject; ACanvas: TcxCanvas; APainter: TcxvgPainter;
AValueInfo: TcxRowValueInfo; var Done: Boolean);
begin
if (TcxEditorRow(AValueInfo.Row).Properties.Caption = 'HP') and (cxDBVerticalGridHP.Properties.Values[AValueInfo.RecordIndex] > 300) then

begin
ACanvas.Brush.Color := AValueInfo.ViewParams.Color;
ACanvas.FillRect(AValueInfo.VisibleRect);
ACanvas.Font.Color := clRed;
ACanvas.Font.Style := [fsBold];
ACanvas.DrawText(TcxCustomTextEditViewInfo(AValueInfo.EditViewInfo).Text, AValueInfo.BoundsRect, 0);
Done := True;
end;
[/more]
Автор: yuish
Дата сообщения: 21.12.2006 09:13
Alex47
Спасибо большое. Все получилось.
Автор: greenpc
Дата сообщения: 21.12.2006 11:54
подскажите.
есть verticalgrid без привязки к БД и ячейка как memo
надо занести/считать значения програмно и соотвественно растянуть
memo на несколько строк
вариант с растягиванием из примера не проходит (параметр .VisibleLineCount)
заранее спасибо
Автор: VadimLou
Дата сообщения: 21.12.2006 15:26
Кто нить пробовал добавить свой InplaceEditor для cxGrid, например комбик, но не наследник от cx компонент ?
Автор: jicoff
Дата сообщения: 21.12.2006 18:37
VadimLou

Вообще-то у них на сайте был пример использования другого компонента в качестве редактора. Но насколько оно полноценное использование - это вопрос.
Автор: VadimLou
Дата сообщения: 22.12.2006 10:11

Цитата:
свой InplaceEditor для cxGrid

хуфь вроде получилось, но пришлось заюзать их inplace editor TcxMaskEdit и при активации подставлять свой комбик ...
Автор: sas_koval
Дата сообщения: 22.12.2006 12:34
люди добрые подскажите!
есть cxGrid. его стандартными средствами произвёл фильтрацию. теперь нужно вычитать все ячейки, что отображаются на экране.
т.е. не то, что есть в DataSet а именно то, что отфильтровал сам грид.
при этом не подходят команды типа
i:= cxGrid2DBTableView1.DataController.GetValue(0,0);
т.к. это обращение к полной неотфильтрованой базе.
заранее спасибо.
Автор: sunduk4
Дата сообщения: 22.12.2006 13:47
sas_koval


Код:
while not CurrView.DataController.IsEOF do
begin
for i := 0 to CurrView.ColumnCount - 1 do
if CurrView.Columns[i].Visible then
buffer:=buffer+VarToStr(CurrView.Controller.FocusedRecord.Values[i]) + #9;
buffer:=buffer+#13+#10;
CurrView.DataController.GotoNext;
end;
Автор: uranic2
Дата сообщения: 22.12.2006 14:08
sas_koval
DataController.FilteredRecordCount
DataController.FilteredRecordIndex

В справке есть пример
Автор: sas_koval
Дата сообщения: 22.12.2006 14:42
sunduk4

Цитата:
кусок кода из проекта - экспорт в буфер грида as is.
думаю дальше разберешься.

ага. разобрался. спасибо большое. помогло
Автор: VadimLou
Дата сообщения: 25.12.2006 01:03
Кто нить 6-й грид юзал ? Совметимо ли оно с 5-тым ?
Автор: esvrab
Дата сообщения: 26.12.2006 08:20
Господа, после установки DevExpr_17_nov_2006 при перекомпиляции в Д5 возникла непонятная Internall error номер не помню. При повторной компиляции вдруг исчезла, но теперь периодически выскакивает при компиляции проектов используемых компоненты Девок. Может кто-нибудь объяснит в чем дело?
Автор: ArtemiyUO
Дата сообщения: 26.12.2006 08:20
Люди подскажите если кто знает пожалуйста.

Как прочитать/записать свойство конкретного эдитора в конкретной строке?

Знаю как достучаться до общих свойств эдитора в колонке
TcxFontNameComboBoxProperties(BandedTableView.Columns[1].Properties).FontPreview.PreviewText := form1.Font.Name;

знаю как до значения "основного" в конкретной строке
BandedTableView.DataController.SetValue(0, 1, 'Tahoma')
А как проставить или прочитать другие свойства эдитора не знаю.

Поискал в кноледжбейс, но не нашел.
Автор: sunduk4
Дата сообщения: 26.12.2006 10:48
ArtemiyUO
а что конкретно получить нужно? какая задача?
Автор: ArtemiyUO
Дата сообщения: 26.12.2006 12:17
sunduk4
Есть грид в нем
одна колонка например TcxFontNameComboBoxProperties
там выбирается шрифт, по мимо самого шрифта можно еще указать еще и стиль, дак вот как этот стиль достать для конкретного эдитора в конкретной строке.
Автор: sunduk4
Дата сообщения: 26.12.2006 12:47
ArtemiyUO
попробуй обратиться где-то так -
ТcxFontNameComboBox(MyTableView.Controller.EditingController.Edit).
Автор: ilya_er
Дата сообщения: 26.12.2006 13:17
Alex47

Цитата:
На 64 странице я давал рабочий код для вертикальной отрисовки текста в заголовке колонки.

Не подскажете, как правильно модифицировать процедуру с 64-й страницы для вертикальной отрисовки заголовка Band'а ? У меня почему-то не выходит... В частности, неясно, что использовать вместо AreaViewInfos ; LookAndFeelPainter требует для отрисовки Neighbors:TcxNeighbors, а TcxGridBandHeaderViewInfo не содержит ничего похожего....
Автор: ArtemiyUO
Дата сообщения: 26.12.2006 13:17
Неполучается, АВ сыпятся.
Автор: esvrab
Дата сообщения: 26.12.2006 13:26
Судя по всему мой вопрос по Internal error - это частный случай
Автор: xokc
Дата сообщения: 26.12.2006 17:08
ArtemiyUO
with (Column.Properties as TcxFontNameComboBoxProperties) do
begin
...
end
Автор: VadimLou
Дата сообщения: 27.12.2006 03:57
esvrab

Цитата:
Internall error

Скомпили один раз файлы и спячь их после этого (перенеси куда нить).
Доложно помочь но не пожизненно ... эти баги линковщика похоже вычистили только в последних версиях delphi. Но на 5-ке их частота зависит от размера проекта и количества перекомпилируемых файлов.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Kylix


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