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

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

Автор: JDEE
Дата сообщения: 23.11.2009 15:14

Цитата:
Исправят в следующей (5.48) версии.
Bug Report Details: Navigating with keyboard up/down does not trigger FocusedNodeChanged event when CellSelect is False


Да вот в том то и дело что FocusedNodeChanged вызывается, но визуально скролл не срабатывает. Ладно, будем ждать...
Автор: SIgor33
Дата сообщения: 23.11.2009 16:21
afiget
спасибо понял
Автор: Radio_Kat
Дата сообщения: 24.11.2009 11:19
Можно ли с помощью компонентов DevExpress нарисовать графики 3D?
Автор: mdid
Дата сообщения: 24.11.2009 11:45
аааа..хелп..пол дня продолбался с футерами и суммами в GridBandedTableView по колонкам и тут те на...они оказывается не срабатывают еси footer=false или колонка visible=false... а выводить footer неохота ибо он хреново смотрится..как суммировать при невидимом футере и колонке?
Автор: Radio_Kat
Дата сообщения: 24.11.2009 11:53

Цитата:
жно ли с помощью компонентов DevExpress нарисовать графики 3D?

речь идет не о плоскостях. видимо то что я хочу можно сделать - судя
по картинке
только вот найти не могу как это сделать
Автор: volser
Дата сообщения: 24.11.2009 13:13
Radio_Kat
Это TcxGridChartView?
Автор: f3ka
Дата сообщения: 24.11.2009 13:49
volser
Radio_Kat
по названию файла картинки ясно что это .Net Windows Forms, поэтому это возможно TcxGridChartView в .Net реализации
Автор: vladman
Дата сообщения: 24.11.2009 17:01
Radio_Kat

Цитата:
Можно ли с помощью компонентов DevExpress нарисовать графики 3D?

Если речь идет о VCL компонентах - то нет, всего лишь Accepted - Release TBD
Suggestion Details: Chart View - Support 3D (Three Dimensional) charts
Автор: vladman
Дата сообщения: 24.11.2009 19:19
mdid

Цитата:
они оказывается не срабатывают еси footer=false или колонка visible=false...

Как они у вас не срабатывают? Возвращают неверный результат, либо вообще ничего не возвращают? Как вы получаете значения из таких Summary?
Автор: Radio_Kat
Дата сообщения: 25.11.2009 04:53

Цитата:
Radio_Kat

Цитата:Можно ли с помощью компонентов DevExpress нарисовать графики 3D?

Если речь идет о VCL компонентах - то нет, всего лишь Accepted - Release TBD
Suggestion Details: Chart View - Support 3D (Three Dimensional) charts


спасибо.

Добавлено:
как сказать компоненту TdxNavBar использовать скины заданные в TdxSkinController?

нашла две темы
1. TdxNavBarSkinNavPanePainter

2. TdxNavBarSkinExplorerBarPainter

попробовала три варианта - все вызывают AV

1.
Код: TdxNavBarSkinExplorerBarPainter(TdxNavBar(Dest).ViewStyle).SkinName := 'Office2007Blue'
Автор: mdid
Дата сообщения: 25.11.2009 08:07
vladman
вообще ничего не показывает...а получаю в summary по событию OnGetText...в общем я на их футер положил TPanel закрыв это безобразие
Автор: vladman
Дата сообщения: 25.11.2009 10:43
Radio_Kat

Цитата:
как сказать компоненту TdxNavBar использовать скины заданные в TdxSkinController?

Явно (вручную) не указывать значение в свойство ViewStyle.SkinName и тогда скин из dxSkinController применится к TdxNavBar автоматически.

А ошибки у вас возникали, так как приведение типов нужно делать в соответствии со свойством ViewStyle вашего TdxNavBar. т.е.

if <YourdxNavBar>.ViewStyle.ClassName = 'TdxNavBarSkinNavPanePainter' then
TdxNavBarSkinNavPanePainter(<YourdxNavBar>.ViewStyle).SkinName := 'Office2007Blue';

if <YourdxNavBar>.ViewStyle.ClassName = 'TdxNavBarSkinExplorerBarPainter' then
TdxNavBarSkinExplorerBarPainter(<YourdxNavBar>.ViewStyle).SkinName := 'Office2007Blue';

Но опять же, этот код вам не понадобится если вы используете TdxSkinController и явно не установите свойство ViewStyle.SkinName, т.е. свойство ViewStyle.SkinNameAssigned = false;
Автор: volser
Дата сообщения: 25.11.2009 10:53
Radio_Kat
TdxNavBar укажите паинтер TdxNavBarSkinNavPanePainter или TdxNavBarSkinExplorerBarPainter. Имя скина он сам возьмет с контроллера.
Автор: Radio_Kat
Дата сообщения: 25.11.2009 11:40
vladman

MyNavBar : TdxNavBar;
при попытке сделать:
MyNavBar.ViewStyle.SkinNameAssigned = false;
говорит undeclared identifier: 'SkinNameAssigned'

volser
как у TdxNavBar указать паинтер TdxNavBarSkinNavPanePainter или TdxNavBarSkinExplorerBarPainter?
Автор: vladman
Дата сообщения: 25.11.2009 11:57
Radio_Kat

Цитата:
говорит undeclared identifier: 'SkinNameAssigned'

Скорее всего вы пытаетесь применить скин на ViewStyle, который не скинится.
Только два ViewStyle позволяют применять скин для отрисовки TdxNavBar - это SkinExplorerBarView и SkinNavigationPaneView.

Добавлено:
mdid

Цитата:
вообще ничего не показывает..

А где по-вашему саммари должно показываться, если вы скрывали footer.
Автор: mdid
Дата сообщения: 25.11.2009 12:28
vladman
показываться он и не должен...но должен хотя бы подсчитывать..а он не считает при скрытом футере..в общем панель сверху все решила
Автор: volser
Дата сообщения: 25.11.2009 12:47
Radio_Kat
dxNavBar.ViewStyle := TdxNavBarSkinExplorerBarPainter; или dxNavBar.ViewStyle := TdxNavBarSkinNavPanePainter;
Автор: vladman
Дата сообщения: 25.11.2009 13:31
volser

Цитата:
dxNavBar.ViewStyle := TdxNavBarSkinExplorerBarPainter; или dxNavBar.ViewStyle := TdxNavBarSkinNavPanePainter;

Так работать не будет
Для установки определенного View в runtime необходимо установить соответствующее значение (константу) в свойство dxNavBar.View. Например,

uses
dxNavBarConsts;
...
<YourdxNavBar>.View := dxNavBarSkinExplorerBarView;

Список всех констант смотрите в ms-help://borland.bds5/ExpressNavBar2.BDS5/ExpressNavBar2/IDH_TcxCustomNavBar_View.htm
Автор: SANiMirrorOfLight
Дата сообщения: 25.11.2009 15:41
Сдравствуйте.

У меня такая проблема, в одном из столбцов грида отображается сумма денег за товар, почему-то в одном из товаров эта сумма отображается в таком виде "3028,39990234375" хотя сумма вводилась такая: 3028,4.
Тип поля в гриде и в базе данных float, бд - fierbird.

Подскажите как мне от этого избавиться.

пс. думал попробовать настроить отображение данных до 100-ых, нашол данный вариант решения "TcxCurrencyEditProperties(cxGrdArticleHaveDBTblVwR_MONEY.Properties).DisplayFormat := ',0.00'" , поместил данный код в обработчик формы onShow, но в работе выдаёт ошибку EAccessVioletion, подразумеваю что чтото я не проинициализировал, как быть в этой ситуации? рабочий ли вариант?
Автор: vladman
Дата сообщения: 25.11.2009 16:20
SANiMirrorOfLight

Цитата:
Тип поля в гриде и в базе данных float, бд - fierbird.

Использование в БД вместо типа данных float тип NUMERIC(15,2) должно решить вашу проблему.
Автор: SANiMirrorOfLight
Дата сообщения: 25.11.2009 16:36
vladman

Спасибо, помогло
Автор: Radio_Kat
Дата сообщения: 26.11.2009 05:24
vladman, до меня только сейчас дошло что скины на dxNavBar. могут применяться только (!) если View = SkinExplorerBarView или SkinNavigationPaneView. и тогда действительно просто подхватывает значение из dxSkinController.



Автор: asi81
Дата сообщения: 26.11.2009 12:20
Добрый день!
Извините если повтор - тема настолько огромна, что найти тяжело.
Установил 47 девэкспресс с помощью китайского установщика. раньше стоял рубордовский, но сейчас его зажали в копилке. После установки у меня в Packages осталось несколько строчек типа "bsp not found". Я посмотрел - все эти пакеты уже установлены, только лежат в той папке, где лежат все остальные пакеты - раньше они зачем-то лежали в C:\windows\System32. Других проблем вроде бы нет - но если использовать skinController(положить на форму и включить) , то приложение стабильно вылетает при запуске - делал примитивный пример - 2 кнопки и скинконтроллер. Запускаю - Эксепшн - Access Violation.
Автор: MyNameIsNataly
Дата сообщения: 26.11.2009 16:00
Добрый вечер, уважаемые форумчане!
Подскажите пож-ста, как копировать текст полей в буфер обмена данными (т.е. заточено ли под это какое-нибудь свойство) из TcxDBVerticalGrid, если все свойства в TcxDBVerticalGrid.OptionsData проставлены False? Поясню, при таких настройках поля в таблице не выделяются и не копируются.
Автор: vladman
Дата сообщения: 26.11.2009 22:21
MyNameIsNataly

Цитата:
Подскажите пож-ста, как копировать текст полей в буфер обмена данными (т.е. заточено ли под это какое-нибудь свойство) из TcxDBVerticalGrid

На данный момент для TcxDBVerticalGrid нет готового механизма копирования содержимого всех полей в clipboard. Но вы легко сможете это реализовать сами. Формируйте необходимый текст в нужном виде путем итерации по всем видимым полям вашего датасета, а затем выполните Clipboard.AsText := <YourGeneratedTextForClibboard>. Не забудьте подключить модуль Clipbrd.
Автор: neznayka3
Дата сообщения: 27.11.2009 08:09
как организовать фильтр в cxTreeList, чтобы попадающие под фильтр узлы меняли шрифт, а родительские узлы были видимы, но дедоступны. такое можно можно увидеть в "preferences" многих IDE.
Автор: MyNameIsNataly
Дата сообщения: 27.11.2009 15:02
vladman

Спасибо.
Уточню, меня интересует скорее не копирование содержимого всех полей и даже не само копирование, т.к. оно, в принципе, возможно с использованием кнопок Сtrl + C, Ctrl + V. А возможность ВЫДЕЛИТЬ текст в конкретном поле таблицы TcxDBVerticalGrid, чтобы в дальнейшем текст из этого поля копировать и использовать по своему усмотрению. При этом свойства в TcxDBVerticalGrid.OptionsData должны быть проставлены False. (Когда свойства проставлены в True, то выделить текст в поле возможно, при этом появляется другой "глюк", о котором, если нужно сообщу отдельно.)
Автор: vladman
Дата сообщения: 28.11.2009 12:00
MyNameIsNataly

Цитата:
возможность ВЫДЕЛИТЬ текст в конкретном поле таблицы TcxDBVerticalGrid

Вы сами запрещаете выделение текста в конкретном поле, установив свойство TcxDBVerticalGrid.OptionsData.Editing в False. Если вам нужна возможность скопировать значение текущего поля cxDBVerticalGrid, можно обработать событие onKeyDown вашего cxDBVerticalGrid. Например:

Код:
uses
Clipbrd
...

procedure <YourForm>.<YourcxDBVerticalGrid>KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if (Key = 67) and (Shift = [ssCtrl]) then
if TcxDBVerticalGrid(Sender).FocusedRow is TcxDBEditorRow then
Clipboard.AsText := VarToStr(TcxDBEditorRow(TcxDBVerticalGrid(Sender).FocusedRow).Properties.Value);
end;
Автор: Vadim153
Дата сообщения: 30.11.2009 02:27
Добрый день!
Вопрос по cxGrid, который не привязан к БД.
Создаю новую строку и заполняю ее. Одно из полей должно быть вычисляемым.
Т.е. при любых изменениях в Поле1 и Поле2, значение в Поле3 д.б. изменено.
По какому событию вычислить значение Поля3 и как его ввести в нужную ячейку текущей строки грида?
Автор: neznayka3
Дата сообщения: 30.11.2009 07:08
для заполнения cxLookupComboBox использую код

Код: procedure TForm12.cxLookupComboBox1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
tmp: string;
begin
if cxLookupComboBox1.EditText='' then
exit;
tmp := Copy(cxLookupComboBox1.EditText, 1, cxLookupComboBox1.SelStart) ;
with ADOQuery1 do
begin
Close;
if tmp<>'' then
begin
sql.Clear;
sql.Add('select top 10 * from streets where street like '''+tmp+'%''');
Open;
end;
end;
end;

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081

Предыдущая тема: Delphi: tcp клиент в потоке


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