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

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

Автор: JohnSilver182
Дата сообщения: 19.08.2010 15:25
Я вот заметил что когда на Экране FloatForm есть , то KeyPreview у Form не работает !!
Может из из этого ??


Автор: JohnSilver182
Дата сообщения: 20.08.2010 12:39
А Я вот достучаться не могу до активного DataSourse у cxGrid

(cxGridSuperLeft.ActiveLevel.GridView.DataController as TcxGridDBDataController).DataSourse
Автор: X11
Дата сообщения: 20.08.2010 14:10
cxGridSuperLeft.activeview.datacontroller.datasource
Автор: JohnSilver182
Дата сообщения: 20.08.2010 14:48

Цитата:
cxGridSuperLeft.activeview.datacontroller.datasource

НЕа
Вот так можно
cxGridSuperLeftDBBandedTableView1.DataController.DataSource
Автор: X11
Дата сообщения: 20.08.2010 14:49
Есть TcxDBTreeList. Как раскрасить строки (текст) разными цветами в зависимости от значения ключевого поля? Я так понял, что нужно использовать событие OnCustomDrawPreviewCell, но как там вычислить значение ключевого поля... не могу допереть

Добавлено:

Цитата:
Я так понял, что нужно использовать событие OnCustomDrawPreviewCell

Я не прав, нужно использовать OnCustomDrawDataCell.
Я построил такой код:

Код: if TcxDBTreeListNode(AViewInfo.Node).KeyValue <> null then
ACanvas.Canvas.Font.Color := GetColorByTypeId(TcxDBTreeListNode(AViewInfo.Node).KeyValue);
Автор: Czechoslovak
Дата сообщения: 20.08.2010 15:52
X11

Цитата:
Я не прав, нужно использовать OnCustomDrawDataCell.

На фиг городить огород если есть хорошеее событие OnGetContentStyle

Добавлено:
X11

Цитата:
Я не прав, нужно использовать OnCustomDrawDataCell.

На фиг городить огород если есть хорошеее событие OnGetContentStyle
Автор: X11
Дата сообщения: 20.08.2010 16:03

Цитата:
На фиг городить огород если есть хорошеее событие OnGetContentStyle

у меня нет ни одного определённого стиля, у меня все цвета живут в таблице.
OnGetContentStyle нужно создавать стиль для каждого цвета.
Автор: jonikDk
Дата сообщения: 20.08.2010 16:21

Цитата:
На фиг городить огород если есть хорошеее событие OnGetContentStyle

если можно пример, а то меня эта тема тоже скорок коснется
Автор: X11
Дата сообщения: 20.08.2010 16:24

Код: if AItem = nil then exit;

if ARecord.Values[Grid1Med.Index] = true then
AStyle := cxStyle13;

if ARecord.Values[Grid1CP.Index] = true then
AStyle := cxStyle12;
Автор: afiget
Дата сообщения: 20.08.2010 16:42
JohnSilver182
TcxGridDBTableView(cxGridSuperLeft.ActiveLevel.GridView).DataController.DatSource
TcxGridDBBandedTableView(cxGridSuperLeft.ActiveLevel.GridView).DataController.DatSource
Автор: tanaseduard
Дата сообщения: 22.08.2010 14:15
Проблема с TcxDBTreeList.
Пытаюсь сделать цикл по Selected.
А как получить номер записи в DataSet? Record Index отсутствует.
Пытался через Values но в редакторе данные изменяються а вто в датасете нет.
Автор: JohnSilver182
Дата сообщения: 22.08.2010 16:40
afiget
То есть я чутог ошибся , можно так
(cxGridSuperLeft.ActiveLevel.GridView as TcxGridDBDataController).DataSourse
Автор: strThunder
Дата сообщения: 23.08.2010 06:12
Здравствуйте!
Проблема такая возникла: если TcxGrid.inseting=true, но Editing=false, то при пользовании NewItemRow фокус она получает, но inplace редакторы не появляются. Как это можно побороть? Вопрос именно в том, чтобы разрешить добавление записей (привилегия на insert у пользователя есть), но запретить редактирование существующих (соотв. отсутствует привилегия на update).
Заранее спасибо!
Автор: marser
Дата сообщения: 23.08.2010 07:37
strThunder
OptionsData.Editing := True, а редактирование запрещать на событие OnEditing. Например, AAllow := TcxGridDBTableView(Sender).DataController.DataSource.State = dsInsert;
Автор: Czechoslovak
Дата сообщения: 23.08.2010 08:25
jonikDk
а че там пример все просто до безобразия... вот тебе пример в Demos UnboundListDemoMain tvCustomers добавь событие, вставь код


Цитата:

procedure TUnboundListDemoMainForm.tvCustomersStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
begin
case ARecord.Index of
1: AStyle := cxStyle1;
2: AStyle := cxStyle2;
3: AStyle := cxStyle3;
4: AStyle := cxStyle4;
5: AStyle := cxStyle5;
6: AStyle := cxStyle6;
7: AStyle := cxStyle7;
8: AStyle := cxStyle8;
9: AStyle := cxStyle9;
10: AStyle := cxStyle10;
11: AStyle := cxStyle11;
12: AStyle := cxStyle12;
13: AStyle := cxStyle13;
14: AStyle := cxStyle14;
end;
end;

вот тебе и пример
Можно проверить выделена запись в фокусе ну и так далее и соответственно от твоих пожеланий определять стиль записи....можно проверять какое нить поле, ну во общем насколько хватит фантазии...
Автор: crazypiggy
Дата сообщения: 23.08.2010 08:57
в cxGrid есть две DBвьюхи. в Detail вьюшке никак не могу получить значение столбца ID Datasetа выбранной строки. Подскажите как мне это сделать?????
Автор: marser
Дата сообщения: 23.08.2010 10:49
crazypiggy

Цитата:
в cxGrid есть две DBвьюхи. в Detail вьюшке никак не могу получить значение столбца ID Datasetа выбранной строки. Подскажите как мне это сделать?????


Код: var
ADetailDataController: TcxGridDBDataController;
begin
ADetailDataController := TcxGridDBDataController(<OurMasterDBTableView>.DataController.GetDetailDataController(<OurMasterDBTableView>.DataController.FocusedRecordIndex, 0));
ShowMessage(VarToStr(ADetailDataController.Values[ADetailDataController.FocusedRowIndex,
<OurColumnID>.Index]));
end;
Автор: asi81
Дата сообщения: 23.08.2010 10:55
tanaseduard

Можно примерно так
MainTable->DisableControls();
    for (int i = 0; i < TreeList->SelectionCount ; i++) {
    TcxDBTreeListNode* pNode = dynamic_cast<TcxDBTreeListNode*>(TreeList->Selections[ i ]);
    MainTable->Locate("StrId",pNode->KeyValue,TLocateOptions()); //перевели на нужную строку в таблице
//Здесь делаете со строкой все что нужно
}
MainTable->EnableControls();
Автор: mdid
Дата сообщения: 23.08.2010 11:41
подскажите плз как узнать какой чек изменился в CheckGroup?
Автор: afiget
Дата сообщения: 23.08.2010 14:53
mdid
У каждой TcxCheckGroupItems есть событие OnChange.
Или Properties.OnButtonClick
Автор: mdid
Дата сообщения: 23.08.2010 17:10
хз..может версией не вышел..у меня 46...и такого нету..у TcxCheckGroupItems вообще нет событий а так же нет Properties.OnButtonClick
Автор: afiget
Дата сообщения: 23.08.2010 19:52
Просто эти события не published.
Они наследуются от TcxCustomEditProperties.


Код: procedure TForm1.MyOnButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
ShowMessage(IntToStr(AButtonIndex));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
cxCheckGroup1.Properties.OnButtonClick:=MyOnButtonClick;
end;
Автор: mdid
Дата сообщения: 23.08.2010 19:58
afiget
щикааарно...пасиб огромное
Автор: SIgor33
Дата сообщения: 24.08.2010 10:17
У компонента TdxFlowChart есть коннектор TdxFcConnection у которого точки соединения задаются массивом PointSource их фиксировано 15 штук. Вопрос могу ли я поменять координаты хотя бы одной из них, хочу чтобы она была допустим не на середине стороне (0,5) а на где-то 0,42 а в идеале сам задаю ее координату
Автор: mdid
Дата сообщения: 24.08.2010 11:49
afiget
отвлекли вчера....а как чекануть определенный итем?
ПС
девы конечно хороши многим....но в плане "через жопу" они впереди планеты всей
Автор: asi81
Дата сообщения: 24.08.2010 12:20
Добрый день!
Никто не подскажет - можно ли настроить кнопки в TdxBar, чтобы они все были выровнены по правой стороне, а не по левой? Когда ставлю в свойствах кнопок Align = iaRight, вправо уходит только крайняя правая кнопка. все остальные остаются выравненными слева.
Автор: afiget
Дата сообщения: 24.08.2010 12:27
mdid
Ну справку то можно и почитать, да?
cxCheckGroup.States[i]:=cbsChecked;
Автор: X11
Дата сообщения: 25.08.2010 13:26
Есть вопрос по дизайну панелей и меню. Использую dxBarManager и иконки размеров 24х24. Но, к моему великому сожалению, все пункты главного меню сделаны под размер 32х32, даже если использовать иконки 24х24. Поэтому получается так, что пункты меню вываливаются просто огромные, особенно это не красиво если разрешение небольшое.

Картинко
Может у авторов мониторы по 30"?


В общем можно ли как-то сделать так, чтобы пункты меню по высоте были меньше, под размер иконки 24х24?? Если да, то как это сделать?
У меня получается так, что пункты меню обрезают иконки сверху и снизу и иконки наезжают друг на друга или же пункты по высоте уродливо-большие. SOS
Автор: afiget
Дата сообщения: 25.08.2010 13:50
Какие типы элементов пробовал?
Такое впечатление, что в меню LargeButton.
А вообще для меню иконки 16х16 вроде бы используются. Откуда взял инфу по 24х24?
Почитай раздел TdxBarItemOptions.Size.
Автор: X11
Дата сообщения: 25.08.2010 14:04
UPD


Цитата:
Такое впечатление, что в меню LargeButton.

Ну да, чтобы иконки не наезжали друг на друга, пришлось установить свойство LargeButton в True.


Цитата:
Какие типы элементов пробовал?

Вопрос не понял. Я про элементы (пункты) главного меню, т.е. панели в стиле MainMenu.


Цитата:
Почитай раздел TdxBarItemOptions.Size.

В главном меню пункты - это TdxBarButton. Соответственно там нет этого свойства.


Цитата:
А вообще для меню иконки 16х16 вроде бы используются.

1. 24х24 смотрятся очень хорошо.
2. Не хочется иметь в программе несколько наборов иконок: 16x16, 24x24 и 32x32

Добавлено:
Вот стандартное меню рисует иконки сравнительно компактно, красиво, аккуратно

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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