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

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

Автор: neznayka3
Дата сообщения: 07.05.2009 12:40
подскажите как сделать табы как firefox\iexplore.. те чтобы кнопки закрытия были на каждом табе? у PageControl только одна кнопка закрытия, хотелось бы использовать DockPanel, но там приходится показывать Caption, чего не хотелось бы.
Автор: afiget
Дата сообщения: 07.05.2009 13:52
neznayka3
Использовать другой PageControl либо самому рисовать кнопку в нужном месте таба.
Этот функционал принят в разработку, но еще не реализован.
Автор: yasp2007
Дата сообщения: 07.05.2009 16:48
help me please

convert DXDbgrid to Cxgrid

{$R *.DFM}

type
TmyDBGrid = class(TdxDBGrid);

[..]

R := TmyDBGrid(dxDBGrid1).GetRectNode(dxDBGrid1.FocusedNode);

DxDbButtonEditCodice.Visible := False;
DxDbButtonEditDesc.Visible := False;
DxDbCurrencyEditImpo.Visible := False;
DxDbPickEditDav.Visible := False;
DxDbDateEditOpera.Visible := False;
DxDbEditDesAgg.Visible := False;

RigoTop := 28 + R.Top;

DxDbButtonEditCodice.Top := RigoTop;
DxDbButtonEditDesc.Top := RigoTop;
DxDbCurrencyEditImpo.Top := RigoTop;
DxDbPickEditDav.Top := RigoTop;
DxDbDateEditOpera.Top := RigoTop;
DxDbEditDesAgg.Top := RigoTop;


[..]


please
Автор: jicoff
Дата сообщения: 07.05.2009 18:57
Dimrix

Можно при выборке из БД возвращать лишнее поле, тогда SmartRefresh := False можно оставить, что мне кажется более удобным.
Автор: Dimrix
Дата сообщения: 08.05.2009 09:48

Цитата:
Dimrix
читаем в хелпе как добавить Unbound column в TcxDBGridTableView. Можно прочитать здесь

Спасибо, помогло. НО!!! В статье не указан один параметр, без которого вываливается ошибка обновления данных:
Query.ReadOnly:=False,
где Query - ваш компонент с SQL-запросом
Автор: ZalivkoDenis
Дата сообщения: 08.05.2009 20:03
Meister Floh

Цитата:
Господа, кому интересно, а так же специально для ZalivkoDenis - решил проблему с png изображениями в ApplicationButton (а скорее всего и в cxButton) - описанную мною тут и тут... Вся проблема была в LMD, которые снес за ненадобностью из-за проблеммы описаной мною вот тут - и все сразу просто и тривиально заработало.. Глубже копать не стал, но стало очевидным, что проблемма именно в них (LMD - ).. Может написать в Девочек, чтоб знали


Млин, совсем забыл отписаться, что порешал траблу Проблема не в LMD, т.к. таковых нет.
А траблу порешал следующим способом: просто снес начисто девок (реестр почистил, хотя, для чистоты эксперимента не нужно было), а затем поставил. Всё исправилось.
И такое у меня ощущение, что не баг это компонент... Баг это, похоже, самого CG. По-любасу идёт преобразование в бмп, а вот чем (какой функцией из какого модуля) -- это вопрос... Так вот, похоже, проблема в порядке поиска модулей... Не знаю... Но переустановка помогла.

Добавлено:
У меня вот другая проблема:
Какой из TdxBarItem использовать в Ribbon'сах, чтобы получилось следующее: Кнопка типа SubItems, но работает как LookUp на основною кнопку, т.е. какой режим выбираешь последним из выпадающего списка, такой и будет запускаться по основной кнопке. Она (кнопка) ещё так разделена горизонтальной линией. По типу, как "Опубликовать" в Help&Manual v.5. Вот на скрине, например:
Автор: xokc
Дата сообщения: 08.05.2009 20:38
ZalivkoDenis

Цитата:
просто снес начисто девок (реестр почистил, хотя, для чистоты эксперимента не нужно было), а затем поставил. Всё исправилось.

Повторюсь. Дело не в CG и не в DevExpress, а в порядке установки компонент и, соответственно, в том, какой из пакетов компонент первым (или последним - точно не знаю и знать не хочу) регистрирует графический формат PNG. Если это делает DevExpress, то с PNG все в порядке, если кто-то другой, то - нет. Переустановка DevExpress как раз и приводит к смене порядка регистрации формата PNG.

Автор: ZalivkoDenis
Дата сообщения: 08.05.2009 20:42
xokc

Цитата:
Переустановка DevExpress как раз и приводит к смене порядка регистрации формата PNG.

Имемнно это я и хотел сказать Спасибо, что повторились. Иммено по.тому я и переставлял их, потому как не помогло не изменение в порядке следования путей поиска, ни... Ну да ладно Самый простой способ (универсальный для всех ) -- переставить.

А по пред. посту не можете ничего посоветовать?
Спасибо.
Автор: Meister Floh
Дата сообщения: 08.05.2009 21:06
ZalivkoDenis
Похоже в твоем случае помогла переустановка и действительно имел смысл порядок установки.. В моем случае это не помогало!!!

Теперь по поводу твоего вопроса... Как мне кажется в том примере, что ты показал используется - TdxRibbonGalleryItem
Автор: vladman
Дата сообщения: 08.05.2009 21:44
ZalivkoDenis

Цитата:
У меня вот другая проблема:
Какой из TdxBarItem использовать в Ribbon'сах

Используется TdxBarLargeButton с установленными свойствами
property ButtonStyle: TdxBarButtonStyle = bsDropDown;
property property DropDownEnabled: Boolean = True;
property DropDownMenu: TdxBarPopupMenu;

Цитата:
какой режим выбираешь последним из выпадающего списка, такой и будет запускаться по основной кнопке

Для такого функционала необходима дополнительная обработка - переопределение обработчиков событий и имеждей для TdxBarItem из DropDownMenu.

Цитата:
Она (кнопка) ещё так разделена горизонтальной линией

Горизонтальная линия визуализируется при наведении курсора.

Meister Floh

Цитата:
Как мне кажется в том примере, что ты показал используется - TdxRibbonGalleryItem

Нет, TdxRibbonGalleryItem это немного другое...
Автор: ZalivkoDenis
Дата сообщения: 09.05.2009 01:15
vladman
СПАСИБО!!! Суперррр! Никогда бы не догадался! Пытался сделать уже как год, наверное. Спросил у Вас совершенно случайно!!! ОГРОМНОЕ СПАСИБО за помощь! (Только вместо TdxBarPopupMenu использовал TdxRibbonPopupMenu -- типа, нативней ) Большое спасибо ещё раз за помощь!
P.S. Даже про обработку сказали Для меня это немножко лишнее, но для других будет полезно
Автор: duce2
Дата сообщения: 09.05.2009 17:07
vladman

Цитата:
без временных датасетов достаточно просто может и не получиться. Но вот набросал пример с использованием dxMenData, может подойдет.


спасибо, я забыл об этом компоненте.
Автор: vladman
Дата сообщения: 09.05.2009 22:54
ZalivkoDenis
duce2
Не стоит, правда, рад что решение оказалось полезным.
Автор: neznayka3
Дата сообщения: 10.05.2009 09:17
пишу приложение с интерфейсом аля Delphi 2009, использую DockPanel. если все докпанели находятся на одной форме, то получается большая нагромажденность, к тому же для каждой док панели существует датамодуль, где написана вся логика. как луче все это организовать? создавать формы с парой докпанелями+дата модуль?
главных форм >10 дата модулей столько же.
Автор: VitOs2
Дата сообщения: 10.05.2009 13:11
Прошу помощи в следуюющем.
Есть форма:


Хочу изменить ее вид на:


То-есть, хочу чтобы вид формы изменился (основное требование - нужна большая кнопка с изображением). Делаю следующим образом.
1. На форму кидаю TdxRibbon.
2. Прописываю табы с, соотвествующими с TcxPageControl, именами.
3. Прописываю действие на OnTabChanged (dxRibbon), чтобы открывалась соответсвующая страница с PageControl.
4. Табы с PageControl прячу.

Вроде все нормально и работает, но есть несколько моментов. Если кликнуть двойным кликом на новом табе, то он начинает раскрывать групу. Она пустая и ненужная, но раскрывается. Очень малая вероятность того, что простой пользватель будет так нажимать, но все же.
Изменения свойства
ShowTabGroups
не помогает.

Вопрос. Как сделать, чтобы при двойном клике на табе DxRibbon не было лишних визуализаций? То-есть, чтобы поведение DxRibbon, в данном контексте, было аналогично cxPageControl. Можно ли заменить двойной клик, на одинарный?
Может, посоветуете другую реализацию?
Спасибо!
Автор: vladman
Дата сообщения: 10.05.2009 22:16
VitOs2

Цитата:
Вопрос. Как сделать, чтобы при двойном клике на табе DxRibbon не было лишних визуализаций?

_http://www.devexpress.com/Support/Center/p/Q107376.aspx
Автор: VitOs2
Дата сообщения: 11.05.2009 07:51
vladman
Спасибо большое! Это как раз по моему вопросу. Но!
У меня есть еще и главная форма, где стандартное поведение необходимо!
Поэтому, нельзя перекомпиливать компоненты...
Может, просто как-то отловить двойной клик и обработать его как одинарный?
Сейчас поищу в инете, как это делается...

Проблему решил.
Добавил на форму ApplicationEvents1, а в обработчике OnMessage написал:
if msg.hwnd = dxRibbon1.Handle then
if msg.message = WM_LBUTTONDBLCLK then { двойной щелчек}
begin
msg.message := 0;
Exit;
end;
Конечно, не нравится, что еще один дополнительный компонен на форме, но, пока так.
Если кто что посоветует оптимальние, буду благодарен!

Всем спасибо!
Автор: Meister Floh
Дата сообщения: 11.05.2009 19:17
vladman или ВСЕ
А может подскажете как в рибоне в DropDown кнопочке вставить окошко с мемо-полем изменяемого размера, мультстринг понятно.. Потому как если вставить cxMemo - его высоту поменять не могу
Автор: xokc
Дата сообщения: 11.05.2009 19:39
Meister Floh
Вместо кнопочки c DropDown использовать cxEditItem вместе с TcxPopupEdit и TcxMemo
Автор: Meister Floh
Дата сообщения: 11.05.2009 20:03
xokc
Всмысле - или TcxPopupEdit или TcxMemo?
Автор: vladman
Дата сообщения: 11.05.2009 20:43
Meister Floh

Цитата:
с мемо-полем изменяемого размера

Можно попробовать с TdxBarControlContainerItem, но не совсем понятно кто/что будет этот размер изменять? DesignTime/runTime? Да и, в принципе, непонятна необходимость Memo в DropDown меню. Пользователь будет в это Memo что-то вносить или копировать из него? либо в Memo будет статичный текст?
Автор: Meister Floh
Дата сообщения: 11.05.2009 20:47
vladman
Грубо говоря в мемо будет вносится структура БД типа:

Код:
CREATE TABLE SysData (
DBVerDate DATE,
DBVersion VARCHAR(20),
DBStruct FORMATTEDMEMO,
UNIQUE INDEX DBVerDate (DBVerDate)
);
INSERT INTO SysData values ('2009-05-06', '1.0.0.1', MimeToBin('QwBSAEUAQQBUAEUAIABUAEEAQgBMAEUAIABUAGUAYwBoAFQAcgBlAGUAIAAoAA0ACgAgACAASQBEAFQAZQBjA
AoAIAAgAFQAZQBjAGgATgBhAG0AZQAgAFYAQQBSAEMASABBAFIAKAA1ADAAKQAsACAADQAKACAAIABQAFIASQBNAEEAUgBZ
ACAASwBFAFkAIABJAEQAVABlAGMAaAAgACgASQBEAFQAZQBjAGgAKQAsACAADQAKACAAIABJAE4ARABFAFgAIABJAEQAVABl
и т. д.='));
Автор: vladman
Дата сообщения: 11.05.2009 21:03
Meister Floh

Цитата:
Грубо говоря в мемо будет вносится структура БД типа:

И что пользователь с этим должен уметь сделать?
Автор: Meister Floh
Дата сообщения: 11.05.2009 21:12
vladman
Это не пользователь, а администратор... Ну такой не совсем администратор, который, может и ручками БД сотворить, а такой.. несколько недоделаный..

Для пользователя несколько другая часть приложения, которая, почти готова.. Кроме того, даже пользователь может внести в memo, то, что ему прислали на мыло..
Автор: vladman
Дата сообщения: 11.05.2009 21:20
Meister Floh
OK ну он все же пользователь Вашего продукта (софта) Так вот, вопрос был в том, что он (пользователь, полуадминистратор, не важно) должен уметь (читай способен) сделать (View, Edit, Copy, Paste, Select...) с содержимым этого Memo в DropDownMenu Вашей кнопки?
Автор: Meister Floh
Дата сообщения: 11.05.2009 21:25
Интересно, неуж-то так тяжело было написать компонент, с вываливающейся мемо-панелью, типа как какой-нить дневник.. С двумя (по выбору) скрол-барами... Глупость какая-то.. ведь должно где-то быть..

Добавлено:
vladman
Грубо говоря удалить содержимое и вставить новое..

Никогда не мог подумать, что уткнусь в такую мелочь.. Даже проблему с обращением к переменной, имя которой содержится в строке, как-то криво но обошел..
Автор: vladman
Дата сообщения: 11.05.2009 22:00
Meister Floh

Цитата:
компонент, с вываливающейся мемо-панелью


Цитата:
Грубо говоря удалить содержимое и вставить новое..

Ну теперь более понятно назначение сего Memo.
Реализация есть, и, причем, стандартная, т.е. компонент, собственно, и написан уже, только собрать нужно немного
Используем cxEditItem PopupEdit, и в качестве свойства PopupControl этого PopupEdit указываем ваш настроенный на нужное количество "(по выбору) скрол-баров".
Автор: infomSB
Дата сообщения: 12.05.2009 08:29
VitOs2
По мне так вам достаточно использовать PageControl с каким нибудь скином, ведь по сути урезаете 99% функциональности Риббона, а используете только Закладки и Большую красивую иконку.
Автор: Meister Floh
Дата сообщения: 12.05.2009 08:56
vladman
Во!!! Оно спасибо!!!! А то вчера уже просто аж нервы сдавать начали...
Автор: afiget
Дата сообщения: 12.05.2009 10:36
Meister Floh
Честно говоря, даже предположить не мог, что ты не посмотрел в сторону PopupEdit. Хорошо, у vladman терпения хватило все повыспросить

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081

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


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