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

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

Автор: dimm78
Дата сообщения: 02.06.2009 21:56
ZalivkoDenis
реализовывал такую штуку на базе стороннего фришного компонента... только вид не как у PageControla, а в виде кнопок на панели... если интересует могу закинуть...
Автор: ZalivkoDenis
Дата сообщения: 02.06.2009 22:37
vladman

Цитата:
А какие это преимущества, если не секрет?

Окна пашут как отдельные потоки (может немного не так выразился, но смысл такой)

Цитата:
Тем более если все будет как вкладки PageControl

Имелось ввиду не как, а как в смысле, наподобие. Естественно, не PageControl. Брал табсы, да вот только не дотягивают они до задуманного (в девковских пейджах менюшка есть, в мультилайн красиво выстраиваются), а вот с табсами чего-то не задалось у меня.

dimm78

Цитата:
реализовывал такую штуку на базе стороннего фришного компонента

Там, я так понимаю, вся фишка в том, чтобы развернуть MDIChild по-умолчанию на всю область (типа, maximized), а дальше уже не сложно отследить активирование и т.д.

Цитата:
только вид не как у PageControla, а в виде кнопок на панели...

С кнопками-то оно попроще...

Цитата:
если интересует могу закинуть

Ага, буду благодарен. Может почерпну для себя чего полезного. Спасибо. (мыло в ПМ)
Автор: jonikDk
Дата сообщения: 02.06.2009 23:18
Meister Floh
нафига сдался тебе этот прогресс бар. Если уж не устраивают часики, сделай Splash форму и показывай ее и все.
Автор: vladman
Дата сообщения: 03.06.2009 02:29
ZalivkoDenis

Цитата:
Окна пашут как отдельные потоки

А где можно почитать о том что MDIChild реализованы в отдельных потоках? Как-то раньше не обращал на это внимание.

Цитата:
Может кто-нибудь что-нибудь предложит в этом направлени?

Предложит. Думаю авторитета Developer Express будет достаточно .
Когда-то, на старом сайте Developer Express в разделе Best Practices была отличная статья о подходе к построению пользовательского интерфейса в целом, и использование при этом компонентов Developer Express, в частности.
Думаю вам она поможет определиться с интерфейсом. Правда вы хотите что-то аля PageControl, а они предлагают NavBar. Но, думаю, это не суть важно. Важен сам подход, а там, переключение режимов хоть с помощью табов Ribbon'a организовывай.

На новом сайте этой статьи нет, наверное затерялась при переезде. Но, покопавшись в закромах, статью обнаружил.
FS к статье брать здесь

ЗЫ. Интересно ответил сапорт на вопрос
>>
Are the methods described in the article still your recommended framework for VCL applications?
<<
Yes, this is one of the preferred ways of implementing an application frameworks in VCL applications.


Автор: VadimLou
Дата сообщения: 03.06.2009 07:54
ZalivkoDenis

Цитата:
Окна пашут как отдельные потоки

PageControl (да и весь DevEx) - тоже VCL.
Так что про потоки лучше забыть.

Meister Floh
Или запрос выполнять в паралельном потоке или форму рисовать как ресурс в VisualStudio (пример есть в EurekaLog). Такую форму-ресурс можно создавать в отдельном потоке...
Автор: Meister Floh
Дата сообщения: 03.06.2009 09:35
VadimLou

Цитата:
Или запрос выполнять в паралельном потоке
- почитать бы где нить про это.. Что-то гугль не сильно на эту тему много статетй мне нашел..
Автор: ZalivkoDenis
Дата сообщения: 03.06.2009 09:55
vladman

Цитата:
А где можно почитать о том что MDIChild реализованы в отдельных потоках?

Млин, показалось ... Перепроверил ещё раз -- на самом деле нет, всё работает в основном потоке... Нужно выруливать латентные и ресурсоёмкие операции в дополнительных потоках... Но, это уже тема другого топика...
P.S. А за примерчик -- большое спасибо!
Автор: afiget
Дата сообщения: 03.06.2009 09:58

Цитата:
Что-то гугль не сильно на эту тему много статетй мне нашел..

Да ну ладно!
http://lmgtfy.com/?q=sql+%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81+%D0%B2+%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%B5
Автор: ZalivkoDenis
Дата сообщения: 03.06.2009 09:59

Meister Floh
По потокам толковые статьи можно почитать здесь. Толково написаны некоторые статьи.
Автор: vladman
Дата сообщения: 03.06.2009 10:29
Meister Floh
Интересная дискуссия

ZalivkoDenis

Цитата:
Млин, показалось

Вот и я о том же
Автор: JohnSilver182
Дата сообщения: 03.06.2009 11:04
Hi All
Я тут недавно сабж начал юзать
Есть вопросы

1) Группировать компоненты через cxGroupBox ?
Если я убираю у cxGroupBox.caption='' ТО все равно полоска остается (

2) Можно ли выставить координаты у dxDockPanel ???

3) Пол дня возился с двумя группами cxBarEditItem1->RadioGroup . Я сломался . И cxEditRepository1 . Все равно не понял почему они переключатся как хотят (
Толи DEfault Value надо хитро ставить , то ли еще что
Автор: f3ka
Дата сообщения: 03.06.2009 11:15
JohnSilver182
что значит полоска остается? рамка имеется ввиду? ну так для этого и был сделан GroupBox чтоб показывать конкретную группу объединенных контролов...
если уж прям совсем не хочется видеть рамку тогда надо выставить Style.BorderStyle = ebsNone
если надо просто группировать контролы для того чтоб они красиво располагались то я бы посоветовал использовать TdxLayoutControl.
Автор: JohnSilver182
Дата сообщения: 03.06.2009 11:33
f3kaTdxLayoutControl я посмотрел кульная вещ . Только у него Caption нет .
Там группы можно заводить . Еще не понял как работать с группами .
Автор: f3ka
Дата сообщения: 03.06.2009 11:38
JohnSilver182
по поводу координат у DockPanel можно посоветовать использовать отдельный DockSite для этой панели и выставлять координаты у DockSite

Добавлено:
в LayoutControl отдельно можно создавать группы, но они сразу не отображаются... их необходимо перетащить на LayoutControl... у группы есть таки Caption но возможно стоит ShowCaption или ShowBorders = False... если Caption пустой то будет просто рамка как в случае с GroupBox

Добавлено:
можно создать одну большую корневую группу и ее использовать для Caption'a LayoutControl

Добавлено:
и еще... в LayoutContol по дефолту создается невидимая корневая группа... ее можно выбрать в Object Inspectore... вот там можно задать Caption и он будет как Caption LayoutControl'a
Автор: Chukotka
Дата сообщения: 03.06.2009 11:46
JohnSilver182

Цитата:
Можно ли выставить координаты у dxDockPanel


попробуйте так:

Код:
with AControl.FloatForm do
begin
Width := 200;
Height := 300;
Left := 0;
Top := 0;
end;

AControl: TdxCustomDockControl
Автор: JohnSilver182
Дата сообщения: 03.06.2009 12:01
LayoutControl почему то не ведется на dxSkinController1 (
Автор: f3ka
Дата сообщения: 03.06.2009 12:15
JohnSilver182
ведется... только сначала надо dxLayoutLookAndFeelList кинуть там создать стиль и его указать у dxLayoutControl
Автор: JohnSilver182
Дата сообщения: 03.06.2009 12:25
f3ka Спасибо !

Я только сломался На cxBarEditItem1->RadioGroup . Там в MenuBar две группы cxBarEditItem1->RadioGroup и работают они как хотят ((


Добавлено:
У dxBarManager1Bar забыл вот как прикрутить dxSkinController1
Автор: f3ka
Дата сообщения: 03.06.2009 13:51
JohnSilver182
методом научного тыка установил что
для корректной работы 2-х и более cxBarEditItem->RadioGroup необходимо указать для каждого RadioGroupItem УНИКАЛЬНОЕ значение (не Caption, а именно Value)... затем у cxBarEditItem установить EditValue равный одному из значений привязанной RadioGroup...
после этого RadioGroups переключаются независимо...

Добавлено:
еще забыл что надо у RadioGroupProperties установить ImmediatePost = True

Добавлено:
кстати я делал без cxEditRepository
Автор: MagistrAnatol
Дата сообщения: 03.06.2009 17:06
Есть небольшая задачка - надо в динамике создать бутончики для рибона,разместить
их в конкретной групе,назначить онклик и картинку.
Причем онклик для каждого свой, процедуру онклик моно загнать в базу,причем скорее всего так и будет точнее есть- есть табличка со списком операций - надо в конкретной групе рибона насоздавать бутончиков.В таблицу добавлю картинку для бутончика и че ему белать по клику???
Автор: JohnSilver182
Дата сообщения: 03.06.2009 17:32
f3ka ШАМАН !!

А нету справки единой по всем Девкам ? У меня есть , но они для каждого компонента отдельно
Автор: HighTower
Дата сообщения: 03.06.2009 19:43
знатоки, как сделать скролл cxTreeView при перетаскивании элементов?
Автор: Meister Floh
Дата сообщения: 03.06.2009 20:36
HighTower что значит "скролл при перетаскивании" - в смысле скролл в том случае когда выводишь за пределы отображения? Если да то обрабатывайте события: OnStartDrag, OnEndDrag, OnDragOver.. Хотя чтобы вы не имели ввиду под "скролл при перетаскивании" - все равно обрабатывать нужно эти события и анализировать x,y и если они выходят за пределы отображения слать сообщение скролл... А вообще если внимательно почитать то вот тут можно найти ответ на интересующий Вас вопрос...
Автор: HighTower
Дата сообщения: 03.06.2009 20:45
это значит когда элементов много в дереве
допустим имеется вертикальный скрол
допустим можно скролить вниз
я взял элемент, начал его перетаскивать, хочу "скинуть" на какой то элемент который внизу, его сейчас не видно
пытался сделать так:

Код:
procedure TfrmMain.mainTreeDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var
NbPixels : Integer;
RMin, RMax : Integer;
HOffset,
VOffset : Integer
begin
GetScrollRange( mainTree.Handle, SB_HORZ, RMin, RMax );
If RMin = RMax Then HOffset := 0 Else HOffset := 16;
GetScrollRange( mainTree.Handle, SB_VERT, RMin, RMax );
If RMin = RMax Then VOffset := 0 Else VOffset := 16;

NbPixels := Abs( ( Font.Height ) Div 2 );

If ( Y < NbPixels ) Then
mainTree.Perform( WM_VSCROLL, SB_LINEUP, 0 );

If ( Y > Height - VOffset - NbPixels ) Then
mainTree.Perform( WM_VSCROLL, SB_LINEDOWN, 0 );

If ( X < NbPixels ) Then
mainTree.Perform( WM_HSCROLL, SB_PAGELEFT, 0 );

If ( X > Width - HOffset - NbPixels ) Then
mainTree.Perform( WM_HSCROLL, SB_PAGERIGHT, 0 );
end;
Автор: vladman
Дата сообщения: 04.06.2009 00:51
MagistrAnatol

Цитата:
Есть небольшая задачка

В принципе решаемо, только нужно понять ответ на один вопрос

Цитата:
процедуру онклик моно загнать в базу. .... и че ему белать по клику

А в каком виде это все будет загнано в базу? SQL, исполняемый код, bat файл, исходный код, который нужно откомпилировать?
Автор: VadimLou
Дата сообщения: 04.06.2009 05:29
Meister Floh

Цитата:
почитать бы где нить про это

- любые книги/статьи где про потоки, понятие thread safe
- экспериментировать, подсматривать в чужой код (искать по слову thread)
Автор: f3ka
Дата сообщения: 04.06.2009 07:19
MagistrAnatol

Цитата:
процедуру онклик моно загнать в базу

вот с этого момента можно поподробнее... очень интересно как оно в базе хранится, потому как хочется попробовать тоже такое реализовать
Автор: zzz78
Дата сообщения: 04.06.2009 07:22


Цитата:
afiget

Цитата:
А если такой столбец сделать нулевой ширины, работать будет?

Хорошая идея, но не будет . У cxDBPivotGridField при значении свойство Width=0 ширина поля приравнивается к cxPivotGridDefaultFieldWidth = 105.


cxPivotGridDefaultFieldWidth тоже можно приравнять к нулю... Но не помогло и это. Когда ставлю столбцу этому ширину где-то в районе 20-30 все ок, раскраска пашет т.к. видны значения в этом столбце... Но чтоит ширину прибрать до нуля - раскрашивать отказывается т.к. видимо не отрисовывает его. Точнее раскраска то пропадает то появляется то еще какой нить мудрёж.
Вентиляторы как я понялв один день не могут быть и в работе и в ремонте. Только строго или работа или ремонт.
Автор: f3ka
Дата сообщения: 04.06.2009 07:25
zzz78
а если все таки поставить не нулевую длину, а 1 пиксель? и запретить изменение размеров...
Автор: JohnSilver182
Дата сообщения: 04.06.2009 07:41
Смешно , но в dxBarManager1Bar1 я не могу найти как обзывается разделитель . Типа | между элементами .

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081

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


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