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

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

Автор: uranic2
Дата сообщения: 14.12.2015 08:34
Zioma

procedure TForm13.bb1Click(Sender: TObject);
var
view : TcxGridDBTableView;
Col: TcxGridDBColumn;
begin
view := TcxGridDBTableView (gr1.CreateView(TcxGridDBTableView)) ;
Col := view.CreateColumn;
Col.Caption := 'id';
Col.DataBinding.FieldName := 'id';
lvGrid1Level1.GridView := view;
end;


Добавлено:
У меня у самого вопрос как в контролах TcxFilter или TcxDBFilter затсавить работать popupEdit или ButtonEdit?
Автор: marser
Дата сообщения: 14.12.2015 10:52
uranic2

Цитата:
как в контролах TcxFilter или TcxDBFilter затсавить работать popupEdit или ButtonEdit

Интересный вопрос. За инициализацию компонентов в TcxFilterControl отвечают классы TcxFilter.....Helper. Например, для TcxLookupComboBox есть TcxFilterLookupComboBoxHelper. У TcxPopupEdit и TcxButtonEdit нет хелперов. Ну так напишите их. Например
Код: type
TMyFilterButtonEditHelper = class(TcxFilterTextEditHelper)
public
class function EditPropertiesHasButtons: Boolean; override;
class function GetFilterEditClass: TcxCustomEditClass; override;
class procedure InitializeProperties(AProperties, AEditProperties:
TcxCustomEditProperties; AHasButtons: Boolean); override;
end;

class function TMyFilterButtonEditHelper.EditPropertiesHasButtons: Boolean;
begin
Result := True;
end;

class function TMyFilterButtonEditHelper.GetFilterEditClass: TcxCustomEditClass;
begin
Result := TcxButtonEdit;
end;

class procedure TMyFilterButtonEditHelper.InitializeProperties(AProperties,
AEditProperties: TcxCustomEditProperties; AHasButtons: Boolean);
begin
inherited InitializeProperties(AProperties, AEditProperties, AHasButtons);
with TcxButtonEditProperties(AProperties) do
begin
AProperties.OnButtonClick := AEditProperties.OnButtonClick;
end;
end;

initialization
FilterEditsController.Register(TcxButtonEditProperties, TMyFilterButtonEditHelper);

finalization
FilterEditsController.Unregister(TcxButtonEditProperties, TMyFilterButtonEditHelper);
Автор: uranic2
Дата сообщения: 14.12.2015 11:24
marser

Спасибо большое сработало!
Я вообще подумывал добавить что-то типа custom operator, но вот наткнулся на ответ https://www.devexpress.com/Support/Center/Question/Details/T247647
Увы.

Использую TcxDBFilterСontrol для формирования sql, не хвтает оператора exist

Добавлено:
На devexpress оказывается была заметка, я сразу не увидел
How to use the TcxButtonEdit editor in FilterControl:
https://www.devexpress.com/Support/Center/Question/Details/K18215
Автор: jvthegost
Дата сообщения: 24.12.2015 12:07
Добрый день. Подскажите, компонента
Код: cxDBLookupComboBox1
Автор: LoneWolfII
Дата сообщения: 31.12.2015 13:21
Сам решения так и не нашел, поэтому спрошу, может кто знает:

как "скинить" showmessage и MessageDlg в DevExpress под RAD Studio 10?

Создавал тот же демо-проект под Delphi 7 - все показывает со скинами.

p.s.: использую dxSkinController с указанием единственного скина.
Автор: d3adb33f
Дата сообщения: 31.12.2015 17:57
LoneWolfII

https://www.devexpress.com/Support/Center/Question/Details/S32808
Автор: LoneWolfII
Дата сообщения: 01.01.2016 10:46
d3adb33f
СПАСИБО!
Заработало.

p.s.: Кстати, не знаю почему, но при использовании Vcl.Dialogs говорит что идентификатор UseLatestCommonDialogs не определен. Пришлось использовать просто Dialogs в USES.

Посмотрел исходники Vcl.Dialogs - там такой идентификатор прописан.
Автор: vavavol
Дата сообщения: 19.01.2016 10:21
Ребята, подскажите. в cxGrid была колонка типа CurrencyEdit, все было хорошо. Понадобилась кнопка, перевёл в тип ButtonEdit. Как сохранить формат отображения ",0.00;-,0.00"?
Автор: Kmich
Дата сообщения: 19.01.2016 10:22
Подскажите плиз как в cxGrid сделать чтобы при сортировке или фильтрации первые три строки из датасета были закреплены сверху (в начале) грида.
Автор: vavavol
Дата сообщения: 19.01.2016 11:03

Цитата:
Подскажите плиз как в cxGrid сделать чтобы при сортировке или фильтрации первые три строки из датасета были закреплены сверху (в начале) грида.


Может, запрос так скорректировать....
Автор: Kmich
Дата сообщения: 19.01.2016 11:26
vavavol
у меня в запросе сортировка правильная, но если пользователь захочет отсортировать или отфильтровать данные то и эти строки начинают в сортировке участвовать то в середину то в конец уходят или при фильтрации вообще уйти. А надо чтобы всегда на месте стояли.
Они должны быть как заголовок всегда вверху, но на эти строки можно нажимать чтобы связанные данные посмотреть.
Автор: KDPoid
Дата сообщения: 19.01.2016 14:42
Скрытый столбец, в котором у этих записей отличающееся значение.
Свои обработчики, добавляющие скрытый столбец в условия сортировки или фильтрации...

Ну или... два грида.
Верхний только с избранными строками, без подвала. Нижний - без заголовков столбцов и этих строк.
Тогда и скролл по нижней части не будет затрагивать видимость избранных строк.
Будет выглядеть, как зафиксированные строки в Excel.
Автор: vavavol
Дата сообщения: 20.01.2016 10:52
Добрый день! Может, кто-то поможет. Нужно узнать координаты редактируемой ячейки относительно Screen. Уже чего только не перепробовал.

Column.FocusedCellViewInfo.RealBounds.Top;
Column.FocusedCellViewInfo.EditBounds.Top;
Column.FocusedCellViewInfo.Bounds.Top;
Column.FocusedCellViewInfo.ClientBounds.Top;
Column.FocusedCellViewInfo.ContentBounds.Top;
Column.FocusedCellViewInfo.RealBounds.Top;
Column.FocusedCellViewInfo.TextBounds.Top;
Column.FocusedCellViewInfo.TextAreaBounds.Top;
Column.FocusedCellViewInfo.Bounds.Top;

возвращают координаты относительно грида, а мне нужно относительно всего экрана. Заранее спасибо за ответ
Автор: VitaliM
Дата сообщения: 20.01.2016 11:19
vavavol
Попробуйте посмотреть в этом направлении
cxGrid1.ClientToScreen(...)
или
cxGrid1.ClientToParent(...)
что будет удобнее.

Автор: sonopydnaef
Дата сообщения: 20.01.2016 19:37
DevExpress 2014.vol.2.11

cxDataStorage.pas For unicode delphi: "Fix cxGrid Paint ANSI TEXT BLOB Fields"

class function TcxValueType.GetDefaultDisplayText(ABuffer: PAnsiChar): string;
{<FIX>}
{$IFDEF UNICODE}
var
V: Variant;
{$ENDIF}
{</FIX>}
begin
try
{<FIX>}
{$IFNDEF UNICODE}
Result := VarToStr(GetDataValue(ABuffer));
{$ELSE}
// Fix Paint ANSI TEXT BLOB Fields
V := GetDataValue(ABuffer);
if VarIsArray(V) then
Result := dxVariantToWideString(V)
else
Result := VarToStr(V);
{$ENDIF}
{</FIX>}
except
on EVariantError do
Result := '';
end;
end;
Автор: AnGo
Дата сообщения: 22.01.2016 08:08
Hi, all!

Что-то непонятное происходит с работавшим ранее кодом:


Код: for (k= 0; k <= cxGrid1DBBandedTableView2->Controller->SelectedRecordCount - 1;k++)
         {
         ARowIndex = cxGrid1DBBandedTableView2->Controller->SelectedRows[k]->Index;
}
Автор: KDPoid
Дата сообщения: 22.01.2016 18:56
vavavol,
координаты относительно грида у вас уже есть, так почему бы не посчитать координаты грида относительно экрана ?
пройтись от грида вверх по парентам, прибавляя координаты.
Автор: 21plc
Дата сообщения: 02.02.2016 12:06
[more] Всем привет!

Народ, нужна подсказка по следующей ситуации c PivotGrid-ом (WinForms).

Есть OLAP-куб на SQL Server-е (SSAS), он стоит за прокси, потому к нему подключаемся в режиме XMLA через IIS (с MSMDPUMP.dll). У каждого юзера есть права на выборку данных, потому когда была версия DX v.11 мы допиливали свой XMLA-адаптер на базе DX-кого, чтобы строить SubCube и выбирать ограниченные (фильтром доступа) данные уже с него и все было почти ОК...
Затем перешли на v.13.2, где эти классы у DX-а уже закрыты internal и private модификаторами и получается, что нет возможности сделать какое-то свое (custom) решение.
Недавно вышла версия 15.2, но никаких изменений касательно расширения базовой функциональности там нету.

Вопрос: можно ли как-то реализовать функционал выборки SubCube в PivotGrid-е, который работает в XMLA режиме ?

Отписывал вопрос по SubCube на офиц. Support:
https://www.devexpress.com/Support/Center/Question/Details/T245813
в ответ - морозятся... прямых решений нету, обходных тоже, да и по поводу будущих версий - нет надежды (похожие запросы на форуме пишут уже лет 6, пока безуспешно). [/more]
Автор: exteris
Дата сообщения: 03.02.2016 08:03
21plc
Вряд ли тут ответят. Здесь всё больше VCL-ные девы.
Автор: WSWCORP
Дата сообщения: 04.02.2016 05:52
Приветствую уважаемые... Попал на интересную ситуацию. Суть беды в следующем... Проект собран под 64-bit. Формы, на которых имеется cxGrid при попытке крутнуть колесико мыши выдают AV, причем интересное такое поведение на других формах с Девами не наблюдается. Так же этой беды нет в проекте, собранном под 32-bit. Кто-то наблюдал такое поведение и может есть решение какое-то?
PS. Пользуется Win10, Delphi RAD 10, DevExpress 14.2.2
Автор: V1s1ter
Дата сообщения: 04.02.2016 07:50
WSWCORP
Не совсем по теме, но рядом. Иногда у меня под 64-кой начинаются чудеса. Мне помогал простой Build проекта, а Compile проблему не решала.
Автор: WSWCORP
Дата сообщения: 04.02.2016 09:00
Такое у меня тоже появляется, особенно когда проект начинает разрастаться, и действительно ребуилд помогает... Тут же вообще чудо чудное... Эврика показывает точку возникновения ошибки, то ли я совсем уж, то ли что-то такое, что я совсем не знаю...

function TcxControl.InternalMouseWheel(Shift: TShiftState; WheelDelta: Integer;
MousePos: TPoint): Boolean;
const
ADirections: array[Boolean, Boolean] of TcxDirection = ((dirLeft, dirRight), (dirUp, dirDown));
AScrollCode: array[Boolean] of TScrollCode = (scPageUp, scPageDown);
var
I: Integer;
AScrollPos: Integer;

Место возникновения ошибки...

begin
Result := MouseWheelScrollingKind <> mwskNone;
if Result then
if Mouse.WheelScrollLines = -1 then
Scroll(sbVertical, AScrollCode[WheelDelta < 0], AScrollPos)
else
for I := 0 to Mouse.WheelScrollLines - 1 do
ScrollContent(ADirections[MouseWheelScrollingKind = mwskVertical, WheelDelta < 0]);
end;
Автор: NeoAnomaly
Дата сообщения: 04.02.2016 09:38

Цитата:
причем интересное такое поведение на других формах с Девами не наблюдается

WSWCORP, на других формах без cxGrid? А так асмовый листинг и регистры из эврики в студию. Возможно девы где-то недоглядели при портировании под x64 и ломается стэк...

ЗЫ
В каком режиме загрузки данных работает cxGrid?
Удаётся повторить проблему на "чистом/новом" проекте?
Автор: WSWCORP
Дата сообщения: 04.02.2016 10:32
NeoAnomaly
Да, на других формах, где есть cxEdit например, все модно и красиво... А вот где cxgrid - там глюк... Сейчас проверил на чистом проекте, 1 форма, на ней cxGrid - ситуация точно такая-же. И вообще чудеса чудесатые, попробовал грид вообще не подключать к датасету - все тоже самое...
Assembler Information:
------------------------------------------------------------------------------------
; Base Address: $B0858B4000, Allocation Base: $0, Region Size: 139936382697472
; Allocation Protect: N/A, Protect: PAGE_NOACCESS
; State: MEM_FREE, Type: N/A
;
000000B0858B4846 ?? ; unaccessible location ; <-- EXCEPTION

Registers:
---------------------------------------------
RAX: 0000000000D7CC18 RDI: 0000000000000000
RBX: 0000000005864F90 RSI: 0000000000000078
RCX: 0000000005864F90 RBP: 000000000014F340
RDX: 0000000000000003 RSP: 000000000014F338
R8 : 0000000000000078 R9 : 000001A7000002AC
R10: 0000000000000031 R11: 0000000000000003
R12: 0000000000000000 R13: 0000000000000003
R14: 00000000007335D2 R15: 000000000000020A
RIP: 000000B0858B4846 FLG: 0000000000010206
EXP: 000000B0858B4846 STK: 000000000014F338

Stack:                Memory Dump:
----------------------------------    -----------------------------------------------------------------------------------
Автор: NeoAnomaly
Дата сообщения: 05.02.2016 10:59
WSWCORP, проблема в компиляторе D10(https://quality.embarcadero.com/browse/RSP-12512), поставь update 1, в нём исправлена проблема.
Автор: WSWCORP
Дата сообщения: 05.02.2016 11:21
NeoAnomaly, Спасибо огромное!!! Была мысль, что это RAD, скачал Upd1, хочу поставить, проверить...
Автор: reenoip
Дата сообщения: 08.02.2016 13:40
А 15.2 кто-нибудь русифицировал?
Автор: vavavol
Дата сообщения: 08.02.2016 16:24
reenoip

Цитата:
А 15.2 кто-нибудь русифицировал?


Я загнал в ресурс ini файл в проекте ещё с версий 2013, а может, и более ранних. При загрузке проекта с помощью TcxLocalizer загружаю оный. На первый взгляд - всё корректно. Особо не замечал некорректных переводов.
Автор: reenoip
Дата сообщения: 08.02.2016 17:26
Понятно, спасибо. Значит, все обходятся предыдущими версиями.
Автор: vipper
Дата сообщения: 10.02.2016 07:46
Уважаемые, а кто-нибудь адаптировал девок версии 15.2.2 под старенькую Delphi 2007?
Есть большой проект, и переходить на свежие дельфи не вариант =(

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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