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

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

Автор: G787
Дата сообщения: 19.11.2012 19:09
DLL со скинами из библиотеки dxSkins это конечно хорошо, но как быть если мне нужно добавить свои скины? А без дллки можно как-то ? А сорс дллки и мануал какчё ?
Автор: salexn1
Дата сообщения: 19.11.2012 20:57
G787
без отдельной dll программа неприлично пристает в весе. по-моему +12Мб. если вес не принципиален - можно и в exe все писать.
Автор: G787
Дата сообщения: 20.11.2012 01:25
salexn1
Я имел ввиду что бы скины были снаружи но не в длл. Наверное так нельзя.
Но всё же вопрос актуален, как засунуть свои скины в длл ?
Автор: marser
Дата сообщения: 20.11.2012 07:14
G787

Цитата:
Я имел ввиду что бы скины были снаружи но не в длл

Не совсем понятно в чем проблема? Есть редактор скинов dxSkinEditor.exe. Есть бинарный файл со cкинами AllSkins.skinres, который можно править как угодно (добавлять свои, править существующие). Распространяйте AllSkins.skinres вместе с программой, а нужный скин загружайте функцией dxSkinsUserSkinLoadFromFile.
Автор: topdon
Дата сообщения: 20.11.2012 12:32
Уважаемые господа!
Прошу прощения, ну очень надо!!!
программировал когда- то как собрать закладки в гриде- но забыл напрочь-много лет прошло!

cxGridDBTableView1 но там не вижу свойства SelectedRows или Bookmarks.Count

Подскажите плиз или дайте ссылку, через что на нее выходить.
Автор: marser
Дата сообщения: 20.11.2012 12:43
topdon
cxGridDBTableView1.Controller.SelectedRowCount, GridDBTableView1.Controller.SelectedRows
Автор: topdon
Дата сообщения: 20.11.2012 12:51
Большое Вам спасибо, настоящий друг!

Добавлено:
Пока Вы не ушли

Но теперь непонятно, как сделать цикл перемещения по закладкам
что- то вроде
for i := 0 to BookmarkList.Count -1 do
begin
// переводим указатель на очередную закладку
tblAccounts.GotoBookmark(Pointer (BookmarkList[i]));
Автор: G787
Дата сообщения: 20.11.2012 15:57
marser
Спасибо.
Автор: topdon
Дата сообщения: 20.11.2012 16:20
для простого грида вот это работает.

bookMark := AdoTable1.Bookmark;
try
ListBox1.Items.Clear;
BookmarkList := DBGrid1.SelectedRows;
for i:= 0 to BookMarkList.Count - 1 do
begin
AdoTable1.Bookmark := BookMarkList[i];
ListBox1.Items.Add(ADOTable1.FieldByName('IdDiscip').AsString);
end
finally
AdoTable1.Bookmark := BookMark;
end;

А для cxGrid никак не могу придумать.
Автор: salexn1
Дата сообщения: 20.11.2012 16:33
topdon
"Простой грид" связан с dataSet и вы перемещаетесь в нем не по "гриду", а по DataSet вот этим вот кодом:

AdoTable1.Bookmark := BookMarkList[i];

Для cxGrid надо смотреть в сторону DataController... К сожалению нету под рукой Delphi

Автор: topdon
Дата сообщения: 20.11.2012 18:33
Вот беда, ну ничего, завтра еще посмотрим...
Автор: marser
Дата сообщения: 21.11.2012 05:50
topdon
А поиском тяжело воспользоваться? Здесь по работе с выделенными записями столько всего понаписано.

Код:
var I, ARowIndex, ARecordIndex: Integer;
begin
for I := 0 to GridFilesTv.Controller.SelectedRowCount - 1 do
begin
ARowIndex := cxGridDBTableView1.Controller.SelectedRows[I].Index;
ARecordIndex := cxGridDBTableView1.DataController.GetRowInfo(ARowIndex).RecordIndex;
ListBox1.Items.Add(VarToStr(cxGridDBTableView1.DataController.Values(ARecordIndex, cxGridDBTableView1Column1.Index));
// cxGridDBTableView1Column1 - колонка для поля 'IdDiscip'
end;
end;
Автор: MagistrAnatol
Дата сообщения: 21.11.2012 08:41
Есть вопрос по ТилеКонтрол - как или вообще убрать или уменьшить время анимации при перелистывании фреймов - когда открываю новый по клике на тиле или возвращаюсь на главное окно???
Автор: exteris
Дата сообщения: 21.11.2012 11:10
MagistrAnatol
В 12.2 версии обещают сделать.
Автор: MagistrAnatol
Дата сообщения: 21.11.2012 15:36
Очень сильно извиняюсь за оффтоп и ламерский вопрос - спрашивал в других ветках, но в них активность нулевая - как в билдере хе3 написать код как в SQL
Код: [no]where param in (1,2,5,6) [/no]
Автор: tanaseduard
Дата сообщения: 21.11.2012 15:47
MagistrAnatol
1.Билдер не SQL
2. Если тип перечисляемый и <=255 можете использовать Set или Case
If i in [1,2,3,4]
Автор: X11
Дата сообщения: 21.11.2012 15:55
В версии 2012 1.6 TcxDBTreeList DataController.FocusedRecordIndex возвращает всегда -1
это у меня только такой баг?
Автор: marser
Дата сообщения: 22.11.2012 06:37
X11
Цитата:
В версии 2012 1.6 TcxDBTreeList DataController.FocusedRecordIndex возвращает всегда -1
это у меня только такой баг?

По-моему и в более ранних версиях тоже самое было. Нужно через ноды работать (TcxDBTreeList.FocusedNode)
Автор: X11
Дата сообщения: 22.11.2012 09:29
А почему тогда FocusedNode возвращает nil?
А можно пример?

Добавлено:
Всё, дошло.

Код: v := dbTreeRegions.FocusedNode.Values[dbTreeRegionsNAME.ItemIndex];
Автор: X11
Дата сообщения: 22.11.2012 11:35

Цитата:
Ребят, ну подскажите, есть cxGrid1LayoutView, есть поле с properties image , не магу загрузить картинку, то что наткнулся здесь на форуме, не арботет



Если ещё актуально, то вот: How to display an image from a data table in an Unbound View
http://www.devexpress.com/Support/Center/p/A95.aspx
Автор: marser
Дата сообщения: 22.11.2012 12:08
X11

Цитата:
Values[FocusedRecordIndex, dbgRegionsRelevantID_REGION.index] := TcxDBTreeListNode(dbTreeRegions.FocusedNode).KeyValue;

Код: dbgRegionsRelevantID_REGION.EditValue := TcxDBTreeListNode(dbTreeRegions.FocusedNode).KeyValue;
Автор: X11
Дата сообщения: 22.11.2012 12:58
Уже лучше. Осталось понять, почему unbound колонке не присваивается значение.


Код: //эта колонка не привязана к DataSet
dbgRegionsRelevantRegion.EditValue := dbTreeRegions.FocusedNode.Values[dbTreeRegionsNAME.ItemIndex];//имя района
Автор: marser
Дата сообщения: 22.11.2012 13:39
X11
Почему не присваивается? Присваивается! Только, когда делается POST или RefreshExternalData запись обновляется.
Автор: X11
Дата сообщения: 22.11.2012 15:05
А как бы сделать так, чтобы без лишней колонки пользователь мог выбирать из дерева прямо в гриде и отображать значение? Если бы не дерево, то сделал бы lookup- выпадающий список.

Добавлено:

Цитата:
апись обновляется.

По идее не должно значение затираться, ведь колонка не привязана к НД.
Автор: salexn1
Дата сообщения: 22.11.2012 16:07
X11
А разве в дереве нельзя заюзать Lookup?
Автор: X11
Дата сообщения: 22.11.2012 16:16
Не понял.
Мне нужно НЕ в дереве заюзать, а именно само дерево вставить в cxGrid.
Автор: MagistrAnatol
Дата сообщения: 22.11.2012 16:42
Помогите с фильтром для грида -
надо на етапе создания формы отфильтровать в гриде, средствами самого грида+
при работе с гридом использую
void __fastcall TfrmNewOper::AdvEditBtn1Change(TObject *Sender)
{
if (AdvEditBtn1->Text!="")
{
cxGrid1DBCardView1->DataController->Filter->BeginUpdate();
cxGrid1DBCardView1->DataController->Filter->Root->Clear();
cxGrid1DBCardView1->DataController->Filter->Root->AddItem(cxGrid1DBCardView1OPER_NAME,foLike,"%"+AdvEditBtn1->Text+"%","%"+AdvEditBtn1->Text+"%");
cxGrid1DBCardView1->DataController->Filter->Active=true;
cxGrid1DBCardView1->DataController->Filter->EndUpdate();
}
else
{
AdvEditBtn1->Text="";
cxGrid1DBCardView1->DataController->Filter->BeginUpdate();
cxGrid1DBCardView1->DataController->Filter->Root->Clear();
cxGrid1DBCardView1->DataController->Filter->Active=false;
cxGrid1DBCardView1->DataController->Filter->EndUpdate();

}
}

как работать с двумя уровнями фильтра??
первый уровень при создании формы
cxGrid1DBCardView1->DataController->Filter->BeginUpdate();
cxGrid1DBCardView1->DataController->Filter->Root->Clear();
cxGrid1DBCardView1->DataController->Filter->Root->AddItem(cxGrid1DBCardView1OPER_TYPE,foEqual,12,12);
cxGrid1DBCardView1->DataController->Filter->Active=true;
cxGrid1DBCardView1->DataController->Filter->EndUpdate();
причем в условиях фильтра будет не 12 а массив из 5-6 значений, как правильно добавить массив?
и как правильно добавить/удалить второй уровень при наборе символов в AdvEditBtn1???
пасибо.
Автор: makz
Дата сообщения: 23.11.2012 01:26
X11
Popup combo для этого есть - вставьте в него дерево.
Автор: marser
Дата сообщения: 23.11.2012 05:56
X11

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

Нужно написать классы наследники от TcxCustomLookupEditProperties и TcxCustomLookupEdit. То есть, взять TcxLookupComboBox и попытаться заменить Grid на TreeList. Я уже писал по этому поводу где-то год назад. Даже готовые компоненты выкладывал. А если по-простому, то только через дополнительное поле, по-другому никак.
Автор: marser
Дата сообщения: 23.11.2012 09:43
MagistrAnatol
см. Demo (FilterByCodeDemo)

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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