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

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

Автор: MagistrAnatol
Дата сообщения: 13.01.2012 14:09
Czechoslovak
пасибо , токо
Цитата:
AFocused

такого свойства нету , получилось так
if(ARecord->Focused==true)AStyle=SelectedCell;
Автор: mdid
Дата сообщения: 13.01.2012 15:41
народ подскажите в чем прикол..есть форма с кодом в onShow

Код: JournalView.RestoreFromIniFile(MainForm.hint+'\Settings\'+JournalView.Name+IntToStr(JournalView.Tag)+'.ini');
Автор: Shadka
Дата сообщения: 13.01.2012 17:30
Помогите! В гриде много группировок и суммирование по ним в footer. Как задать цвет фона для каждого уровня группировки? Нашла только в виев стили, но там заливку делает всего грида, а не по группам..
Автор: Dima335
Дата сообщения: 15.01.2012 11:47
Как в cxchecklistbox добавить вторую колонку? Вот в cxlistbox получается, а здесь - нет
Автор: mdid
Дата сообщения: 15.01.2012 12:32
Shadka
сам не пробовал но попробуйте копнуть в сторону OnGetGroupStyle

к моему вопросу...набросал пример
http://ifolder.ru/28122784

на дружественном форуме помогли решить проблему http://www.sql.ru/forum/actualthread.aspx?bid=20&tid=909848
Автор: andreybear
Дата сообщения: 16.01.2012 03:22
Dima335
Так же, как и в TcxListBox - установить свойство Columns = 2. Как только значения не будут помещаться в TcxCheckListBox по вертикали, непомещающиеся значения будут отображены во второй колонке.
Автор: Czechoslovak
Дата сообщения: 16.01.2012 15:51
MagistrAnatol

В вертикальном гриде есть, я с него пример брал.
Автор: Dima335
Дата сообщения: 16.01.2012 17:00
andreybear

Цитата:
Так же, как и в TcxListBox - установить свойство Columns = 2. Как только значения не будут помещаться в TcxCheckListBox по вертикали, непомещающиеся значения будут отображены во второй колонке.

Да, но мне нужно что-то типа таблицы, только маленькой и с чекбоксами слева. Т. е. во второй колонке чекбоксов быть уже не должно
Автор: andreybear
Дата сообщения: 17.01.2012 05:46
Dima335

Цитата:
Как в cxchecklistbox добавить вторую колонку? Вот в cxlistbox получается, а здесь - нет

А можно пример с TcxListBox?
Автор: Dima335
Дата сообщения: 17.01.2012 06:04
Устанавливаю tabwidth, columns. Далее код cxListBox1.AddItem(string1+^I+string2) добавляет строку, в которой string1 и string2 разделены по своим колонкам. А в cxchecklistbox там будет просто текст в 1 колонке и с непечатным символом между string1 и string2
Автор: andreybear
Дата сообщения: 17.01.2012 07:40
Dima335
А TcxGridTableView с 2 колонками (первая чекбоксы, вторая еще что-то) принципиально не подходит?
Повторюсь, свойство Colums не связано с количеством колонок как таковых - оно относится к размещению данных (если данные не помещаются в одну колонку по вертикали, то создается вторая (третья и т.д.) колонки в случае, когда Columns > 0).
TabWidth - величина табуляции в пикселах. ^I - табуляция.
Так что такое разделение на колонки условно: первая строка + табуляция + вторая строка.
Если настаиваете на такой реализации, то
Ссылка
Автор: mdid
Дата сообщения: 18.01.2012 08:46
мм подскажите плз как в TcxCheckBox отловить итем который только что изменился?
надо что бы при выборе итема все остальные стали не выбранными
Автор: andreybear
Дата сообщения: 18.01.2012 09:30
mdid
TcxCheckBox? Или TcxCheckBoxList? Или несколько TcxCheckBox'ов, при выборе одного из них, с остальных необходимо снимать флажки?
Можно подробнее?
Автор: mdid
Дата сообщения: 18.01.2012 09:34
ой пардон..компонент TcxCheckGroup...в группе допустим 5 итемом...при выборе одного надо снять чеки со всех остальных...я в компоненте вообще не могу найти какой итем только чтол изменился+не могу найти предыдущее состояние....есть конечно вариант завести переменную...но как то это не красиво
Автор: ChSerg
Дата сообщения: 18.01.2012 09:51
mdid

Для таких вещей используют RadioGroup
Автор: mdid
Дата сообщения: 18.01.2012 11:06
ChSerg
о пасиб..я просто чекгруп выбрал из за того что хорошо в ини настройки записывать...но радио тоже нормально ..спасибо
Автор: mcdie
Дата сообщения: 19.01.2012 13:59
Shadka
Свойство Level у рекогда отвечает за уровень группировки, может это поможет.

Код: procedure TForm1.cxGridViewStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
begin
if ARecord.Level = 0 then
AStyle := cxStyle1
else if ARecord.Level = 1 then
AStyle := cxStyle2
else AStyle := cxStyle3;
end;
Автор: mdid
Дата сообщения: 19.01.2012 15:00
народ что т я совсем скис насчет сохранения и восстановления настроек колонок в cxgrid
так как грид не сохраняет заголовок колонки и имя поля то дописал процедуры

Код: procedure TMainForm.GetStoredProperties(Sender: TcxCustomGridTableItem;AProperties: TStrings);
begin
AProperties.Add('Caption');
AProperties.Add('FieldName');
AProperties.Add('Name');
end;

procedure TMainForm.GetStoredPropertyValue(Sender: TcxCustomGridTableItem; const AName: string; var AValue: Variant);
begin
if AName='Caption' then
AValue:=TcxGridDBColumn(Sender).Caption;
if AName='FieldName' then
AValue:=TcxGridDBColumn(Sender).DataBinding.FieldName;
if AName='Name' then
AValue:=TcxGridDBColumn(Sender).Name;

end;
Автор: korstin
Дата сообщения: 21.01.2012 17:59
Последняя используемая версия 2011.1.7
Сейчас поставил триальную 2011.2.3 и столкнулся с проблемой:

При использовании LayoutControl выполняется вычисление размера отображаемой области LayoutControl.ViewInfo.ContentHeight. И если ранее все работало отлично, то сейчас при выполнении кода при условии, что форма еще невидима - возникает исключение Access violation. В их суппорт отписался, посмотрим что ответят. Но может быть, кто в курсе этой проблемы?
Автор: andreybear
Дата сообщения: 23.01.2012 04:18
mdid
Не пробовали использовать TcxPropertiesStore?
Автор: MagistrAnatol
Дата сообщения: 23.01.2012 10:16
Господа, подсобите с такой задачкой
есть cxGrid в нем 10 левелов, и у одного левела есть 4 детали
Как для мастер левела определить какой левел активный сам мастер или какая конкретно из деталей?
Автор: X11
Дата сообщения: 23.01.2012 10:20
у cxGrid есть событие смены уровня
Автор: korstin
Дата сообщения: 23.01.2012 10:42

Цитата:
При использовании LayoutControl выполняется вычисление размера отображаемой области LayoutControl.ViewInfo.ContentHeight. И если ранее все работало отлично, то сейчас при выполнении кода при условии, что форма еще невидима - возникает исключение Access violation. В их суппорт отписался, посмотрим что ответят. Но может быть, кто в курсе этой проблемы?

Отвечу сам себе: обойти этот баг можно, вызвав Layout.HandleNeeded перед любым обращением к ViewInfo
Автор: andreybear
Дата сообщения: 23.01.2012 10:47
MagistrAnatol
В справке написано:
Use the grid’s ActiveLevel property and a data row’s ActiveDetailLevel property of a master View to determine the current active root grid level and active child level and the active child level, respectively.
Вроде оно.
Автор: MagistrAnatol
Дата сообщения: 23.01.2012 11:11
X11
если Вы имеете в виду cxGrid1ActiveTabChanged то такой вариант не подходит, ето событие произойдет только когда поменяется подуровень мастера, а если я клацаю на мастере или на табе первого подуровня
то ничего не происходит, а мне надо как раз знать какой из гридов сейчас активен то-ли мастер,
то-ли какая-то из деталей

Добавлено:
andreybear
ето ближе к правде
V_Abo->ViewData->Rows[0]->AsMasterDataRow->ActiveDetailIndex
спасибо
Автор: X11
Дата сообщения: 23.01.2012 11:32
Я говорил про уровни.
Да, именно это событие и другого нет.
Вам уже ответили чуть выше цитатой из справки. И вот приведу пример


Код:
procedure TfmApartSearch.cxGrid1ActiveTabChanged(Sender: TcxCustomGrid;
ALevel: TcxGridLevel);
begin

//Может ли пользователь видеть контакты ОН, которые внес не он (просмотр контактов чужих объектов недвижимости)
if ALevel.Name = lvPhones.Name then
begin
if not CanViewAlienContacts(False) then
begin
TcxGridDBTableView(lvPhones.GridView).DataController.DataSource.DataSet.Close;
TcxGridDBTableView(lvPhones.GridView).OptionsView.NoDataToDisplayInfoText := 'у Вас не прав просматривать контакты чужих объектов недвижимости';
end // if not CanViewAlienContacts(False) then
else
begin
if not TcxGridDBTableView(lvPhones.GridView).DataController.DataSource.DataSet.Active then
TcxGridDBTableView(lvPhones.GridView).DataController.DataSource.DataSet.Open;
end;
end;// if ALevel.Name = lvPhones.Name then
end;

Автор: MagistrAnatol
Дата сообщения: 23.01.2012 11:43
Но есть ещо один ньюансик - если не менять подуровни
ActiveDetailIndex всегда выдаст 0 - индекс первого подуровня, а как теперь отследить кто активен мастер левел или детаиллевел?
И как проверить раскрыт ли по + мастер левел?

Добавлено:
Всем спасибо за наводки, разобрался
X11
можно обойтись и без cxGrid1ActiveTabChanged
надо проверить Фокусед ли мастер если нет тогда уже проверять
V_Abo->ViewData->Rows[0]->AsMasterDataRow->ActiveDetailIndex

Автор: MagistrAnatol
Дата сообщения: 23.01.2012 13:57
Может не совсем в тему но я не могу понять ето глюки грида или моя ошибка
если я руками нажимаю кнопку а потом на новой форме давлю отмена- все норм.
если делаю програмно получаю
First chance exception at $00D0D77C. Exception class $C0000005 with message 'access violation at 0x00d0d77c: read of address 0x00000000'. Process vdgo.exe (1044)


Код: [no]
void __fastcall TfrmMain::AdvGlowButton20Click(TObject *Sender)
{

if (!dm->tAbo->IsEmpty()) {
    try {
        Application->CreateForm(__classid(TfrmNewAboLich), &frmNewAboLich);
        dm->tAboLich->Append();
        dm->tAboLich->FBN("ABO_ID")->AsInteger=dm->tAbo->FBN("ABO_ID")->AsInteger;
        dm->tAboLich->FBN("LICH_KOLVO")->AsInteger=1;
        dm->tAboLich->FBN("OPER_DATA")->AsDateTime=Date();
        if (frmNewAboLich->ShowModal()==mrOk)
        {
        dm->tAboLich->Post();
        dm->tAboLich->FullRefresh();
        }
        else dm->tAboLich->Cancel();
        delete frmNewAboLich;
        }
        catch(Exception& e)
        {
        dm->uTr->Rollback();
        GreateErrorLog(&e);
        dm->tAboLich->Refresh();
        delete frmNewAboLich;
        }
}

[/no]
Автор: Baklan_vs
Дата сообщения: 23.01.2012 14:25
Добрый день или вечер, уважаемое сообщество =)
Я пришел опять с вопросом:
Есть TcxVirtualTreeList.
Нужно свойство OptionsView->PaintStyle = tlpsCategorized использовать только на первом уровне дерева.
Либо иными путями добиться того-же эффекта.
Не подскажете как?
Заранее благодарен.
Автор: andreybear
Дата сообщения: 24.01.2012 05:54
MagistrAnatol

Цитата:
причем ручается почему-то на
dm->tAboLich->Append();
dm->tAboLich->FBN("ABO_ID")->AsInteger=dm->tAbo->FBN("ABO_ID")->AsInteger;
dm->tAboLich->FBN("LICH_KOLVO")->AsInteger=1;
dm->tAboLich->FBN("OPER_DATA")->AsDateTime=Date();
если убрать етот код то все норм

Норм - это значит не возникает ошибки?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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