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

» Использование DevExpress 2

Автор: sergbl2003
Дата сообщения: 13.05.2008 23:12
Можно ли в TcxTreeList отобразить текст в юникоде?
Необходимо для отображения спика файлов на китайском языке
Автор: clear2121
Дата сообщения: 14.05.2008 07:24
Подскажите:
В Гриде создал колонку. Её нет в запросе. Остальные колонки заполняются из запроса (не таблица). Мне надо заполнить этот столлбец значениями. А НЕ ПОЛУЧАЕТСЯ! Пробовал так (С1 - имя стобца): C1->DataBinding->Item->EditValue = 1; - не вижу в таблице присвоенного значения.

Помогите, пожалуйста!
Автор: Darl
Дата сообщения: 14.05.2008 08:50
clear2121

см. напр. OnGetDataText, OnGetDisplayText нужного тебе Columna:

void __fastcall TMainForm::OnGetDataText(TcxCustomGridTableItem *Sender,
    int ARecordIndex, AnsiString &AText)
{
AText = "Рпрапо";
}
Автор: clear2121
Дата сообщения: 14.05.2008 10:37
Darl, Спасибо за совет, но я немного не понял.
Задача: я 2 раза кликаю на строке и мне нужно, чтоб в колонке С1 на этой строке появилась 1 (строка или число не важно). Прости, что не ясно выразился.
Автор: Darl
Дата сообщения: 14.05.2008 12:22
clear2121

Ну напр.
В OnMouseDown пишешь:

if (Button == mbLeft && Shift.Contains(ssDouble))
{
cxGridView->Controller->FocusedRecord->Values[cxGridView->FindItemByName("C1")] = <1 (строка или число не важно)>;
}
Автор: ply
Дата сообщения: 14.05.2008 17:42
Помогите плиз:
есть список грид со списком жанров и грид со списком фильмов (как в ViewTableSimpleDemo).

как сделать так чтобы по клику на название жанра в гриде со списком фильмов оставались только фильмы данного жанра?

+ надо добавить в список жанров строку "ВСЕ ЖАНРЫ" - при клике на нее в гриде с фильмами должны отменяться все фильтры и появляться колонка "Жанр"


В демо уже часа 2 смотрю, нихрена не пойму. Обработчиков событий нету у гридов...

Добавлено:
еще вопрос:
как в гриде реализовать поиск сразу по всем полям (видимые и невидимые)
чтобы все найденные подстроки сразу подсвечивались, а строки в которых не найдено совпадений прятались?
Автор: xokc
Дата сообщения: 14.05.2008 19:29

Цитата:
еще вопрос:
как в гриде реализовать поиск сразу по всем полям (видимые и невидимые)
чтобы все найденные подстроки сразу подсвечивались, а строки в которых не найдено совпадений прятались?

"По всем полям" это как? Во всех полях только строки или могут быть числа, даты или не дай Бог BLOBы? Искать надо только по началу строк или в середине тоже? Если хочешь получить разумный ответ - спрашивай разумно.

А по первой части вопроса - ну ровно так и делай, как сам написал.
Автор: ply
Дата сообщения: 14.05.2008 19:47

Цитата:
"По всем полям" это как? Во всех полях только строки или могут быть числа, даты или не дай Бог BLOBы? Искать надо только по началу строк или в середине тоже? Если хочешь получить разумный ответ - спрашивай разумно.

Сори. Только по полям со строками и целыми числами.
Без учета регистра, в любой части строки (не только начало)
Например если ищем строку "95" то нам выдаются фильмы 1950 года, фильмы в описании которых есть подстрока "95" и тд. Везде найденное выражение как-то выделяется. Строки, в которых ни в одном поле не найдено "95" прячутся.



Цитата:
А по первой части вопроса - ну ровно так и делай, как сам написал.

так я не врубаюсь как это в демке реализовано=) Там же даже нет обработчиков событий (например чтобы в гриде с жанрами по OnCellClick применялся фильтр к гриду с фильмами)

Автор: antonbergov
Дата сообщения: 14.05.2008 20:25
По cxTreeList есть пару вопроисков:

1. Как сделать итемсы как url линки, как в DownloadMastere или в обыном треелисте?

2. Как сохранить местаположения курсора в TreeList, знаю можно получить АbsolutIndex итемса, но как потом фокус на него поставить не знаю?

3. Как сохранить cxTreeList в Stream. А то у меня при savetostream выдает ошибку типа "Abstract error"

4. Пос. вопрос: Есть код:

pNode.ImageIndex := 46;
pNode.StateIndex := 46;
pNode.SelectedIndex := 46;

Нельзя ли эту однобразную информацию упростить???


Спасибо!
Автор: clear2121
Дата сообщения: 15.05.2008 05:30
Darl
Спасибо за помощь, не проходит. Вылазит ошибка
[BCC32 Error] fAllSp.cpp(70): E2034 Cannot convert 'TcxCustomGridTableItem *' to 'int'
Это и понятно, нужен индекс. Ставлю индекс колонки ( у меня 0 ). В колонке на этой записи ничего не отображается.
Автор: drunk2
Дата сообщения: 15.05.2008 08:03
... 111222333 зянят
Автор: Darl
Дата сообщения: 15.05.2008 09:01
clear2121

cxGrid1DBTableView1->Controller->FocusedRecord->Values[0] = "Test"; - проверил, работает. Ты в рантайме создаешь столбец?

P.S. По этому же вопросу если что пиши в ПМ, чтоб топик не засорять.
Автор: Axmedka
Дата сообщения: 15.05.2008 16:01
Нашел на одном из обменников почти все компоненты, скачал себе ExpressBars, ExpressNavBar и ExpressSkins. Первый и второй встали прекрасно, компилируются. А Skins при попытке установки выдает ошибки - требует файлы dxSkinsCore.dcu, dxSkinsStrs.dcu, dxSkinInfo.dcu. Причем после того, как я их нашел по друзьям, ругается на последний из них. Нашел даже три версии скинов - 1.31, 33, 35. Все ведут себя одинаково.
Подскажите, пожалуйста, в чем может быть проблема?
Автор: ply
Дата сообщения: 15.05.2008 17:00

Цитата:
Нашел на одном из обменников почти все компоненты, скачал себе ExpressBars, ExpressNavBar и ExpressSkins. Первый и второй встали прекрасно, компилируются. А Skins при попытке установки выдает ошибки - требует файлы dxSkinsCore.dcu, dxSkinsStrs.dcu, dxSkinInfo.dcu. Причем после того, как я их нашел по друзьям, ругается на последний из них. Нашел даже три версии скинов - 1.31, 33, 35. Все ведут себя одинаково.
Подскажите, пожалуйста, в чем может быть проблема?

качай компоненты с установщиком (в шапке темы есть ссылка, либо торрентс.ру)
Автор: Axmedka
Дата сообщения: 15.05.2008 17:11

Цитата:
качай компоненты с установщиком (в шапке темы есть ссылка, либо торрентс.ру)

Если Вам не трудно, тыкните, пожалуйста, в ссылку, а то просматривать сотню страниц я не могу - трафика нет. Версия для печати почему-то не грузится.
Автор: ply
Дата сообщения: 15.05.2008 19:36

Цитата:
Если Вам не трудно, тыкните, пожалуйста, в ссылку, а то просматривать сотню страниц я не могу - трафика нет. Версия для печати почему-то не грузится.


http://forum.ru-board.com/topic.cgi?forum=35&topic=30992#1

или тут: h**p://torrents.ru/forum/viewtopic.php?t=786417
Автор: Gio22436
Дата сообщения: 16.05.2008 09:55
Подскажите пожалуйста от куда скачать все скини для DevExpres VCL Components?
Спасибо!
Автор: ply
Дата сообщения: 16.05.2008 17:10
http://weblancer.net/projects/53865.html
Автор: xokc
Дата сообщения: 17.05.2008 12:40
ply

Цитата:
Сори. Только по полям со строками и целыми числами.
Без учета регистра, в любой части строки (не только начало)
Например если ищем строку "95" то нам выдаются фильмы 1950 года, фильмы в описании которых есть подстрока "95" и тд. Везде найденное выражение как-то выделяется. Строки, в которых ни в одном поле не найдено "95" прячутся.


Используй OnCustomFiltering. Но если строк будет много - будет тормозить


Цитата:
так я не врубаюсь как это в демке реализовано=) Там же даже нет обработчиков событий (например чтобы в гриде с жанрами по OnCellClick применялся фильтр к гриду с фильмами)

Там это сделано через Master-Detai в DataSet
Автор: AndreyAgrh
Дата сообщения: 17.05.2008 13:28
Подскажите, пожалуйста:
Есть лукапкомбик с двумя колонками.
Как у выбранного поля получить значение второй не ключевой колонки?
всю голову себе с этим сломал.
Вроде должно быть просто, а найти не могу.

+ еще заметил у него такой глюк:
Подключаю к источнику данных, включаю грид мод.
При первом открытии комбика нельзя выбрать первую верхнюю запись. Выбираешь сначала какую-нибудь другую, а потом уже можно и первую.
Автор: f3ka
Дата сообщения: 19.05.2008 16:06
AndreyAgrh возможно это поможет

Код:
SecondValue := cxLookupComboBox1.Properties.DataController.Values[cxLookupComboBox1.Properties.DataController.FocusedRecordIndex, i] //i номер колонки
Автор: Dennica
Дата сообщения: 20.05.2008 05:59
AndreyAgrh

Цитата:
Как у выбранного поля получить значение второй не ключевой колонки?

Задача несколько сложней на самом деле чем кажется на первый взгляд, в свое время я писал под это дело следующую функцию:

Код: function GetValueByFieldNameFromLookupCombo(ACombo: TcxCustomLookupComboBox; AFieldName: string): variant;
var
FColumn: TObject;
FColumnIndex: integer;
FRecordIndex: integer;
begin
// Эксперементально получено равенство:
// ACombo.ItemIndex = ACombo.Properties.DataController.FocusedRecordIndex
// Но есть одно но. Если EditValue при создании комбо инициализуруется каким-либо
// значением, то ItemIndex остается равным -1, а получает значение только после того,
// как пользователь ввел его вручну. Поэтому лучше использовать способ через датаконтроллер.
Result := Null;

if ACombo.Text = '' then
Exit;
if ACombo.Properties.DataController.RecordCount = 0 then
Exit;

// Получаем номер колонки
FColumn := ACombo.Properties.DataController.GetItemByFieldName(AFieldName);
if (not Assigned(FColumn)) or (not (FColumn is TcxLookupDBGridColumn)) then
Exit;
FColumnIndex := TcxLookupDBGridColumn(FColumn).Index;

// Получаем номер записи
if (ACombo.Properties.DataController.FocusedRecordIndex = -1) then
begin
if ACombo.EditModified then
FRecordIndex := ACombo.Properties.DataController.FindRecordIndexByKey(ACombo.EditingValue)
else
FRecordIndex := ACombo.Properties.DataController.FindRecordIndexByKey(ACombo.EditValue);
end
else
FRecordIndex := ACombo.Properties.DataController.FocusedRecordIndex;

if FRecordIndex = -1 then
Exit;

Result := ACombo.Properties.DataController.GetValue(FRecordIndex, FColumnIndex);
end;
Автор: AndreyAgrh
Дата сообщения: 20.05.2008 07:42
f3ka,
гридмод и не хотелось использовать из-за глюка с выбором первой строки.

Dennica,
Спасибо огромное!!! Работает!


Автор: Figaro2000
Дата сообщения: 20.05.2008 15:16
не подскажут ли всеведущие эксперты - можно ли item'ы в TdxNavBar сделать многострочными (multiline)?
Автор: antonbergov
Дата сообщения: 20.05.2008 22:31
Такой вопросик:

1. Как вручную сделать сортировку по определенному столбцу в cxgrid?

2. Как при нажатии на столбец сделать обработать свою сортировку?

3. Как выделить столбец по которому сортируться - серым цветом?

>>>>
Автор: clear2121
Дата сообщения: 21.05.2008 06:10
Darl
Получилось. Не так как хотел, но всё вышло. СПАСИБО!
Подскажите ещё!

В TcxGrid надо раскрасить какую то строчку, если в колонке какое то значение. Делаю так
if( TV1->Controller->FocusedRecord->Values[ 0 ] == "да" ) //0x00B3FFFF желтый
{
ACanvas->SetBrushColor( clRed ); // 0x004646FF );
}
где TV1 есть TcxGridDBTableView.

Как только так получается, то расскрашивается весь грид, или последняя выделенная строчка. После движения по гриду выделение пропадает.

СПАСИБО!


Добавлено:
Вопрос снимается. Всё, решил задачу.
Автор: afiget
Дата сообщения: 21.05.2008 11:27
Figaro2000
Использовать контейнер (не помню как тип называется, он есть в списке типов при добавлении нового итема), в который ложить что-то с поддержкой многострочности.

antonbergov
Все ответы есть в FAQ.
Автор: Vstory
Дата сообщения: 21.05.2008 15:25
Добрый день! Знатоки cxDBPivotGrid, подскажите пожалуйста правильный способ, как можно добавить в область faData колонку, в которой бы отображалась разница значений двух других колонок из той же области?

Добавлено:
В дополнение к предыдущему вопросу - я пробовала использовать OnGetDisplayText добавленной колонки - но проблема в том, что у меня данные отсортированы, и при этом вычисленные значения не попадают в нужные строчки. те. я в OnGetDisplayText пишу
try
CurrS := Sender.PivotGrid.DataController.GetValue(ACell.RowIndex, cxDBPivotGrid1Field5.Index) - Sender.PivotGrid.DataController.GetValue(ACell.RowIndex, cxDBPivotGrid1Field7.Index);

AText := CurrToStr(CurrS);
except
AText := '?';
end;
а в результате получаю полную билиберду - значения по строкам вычисляются, но результаты отображаются в какой хотят строке (
Автор: Dennica
Дата сообщения: 22.05.2008 06:24
Vstory
Вы просто путаете понятия строки и записи. Row - номер строки на экране, может изменяться при сортировках, группировках и т.д. Record - номер строки в контроллере, фактически это Recno в датасете - 1. Так вот в качестве первого аргумента к GetValue вам не экранный номер нужно указывать а Record...
p.s. Да и вообще, раз вы через грид отображаете какой-то датасет, может лучше попробовать решить задачу на его уровне, а не в гриде вычисления городить.
Автор: Vstory
Дата сообщения: 22.05.2008 09:52
Dennica, огромное Вам спасибо!
По поводу решения на уровне датасета - в итоге так и сделали, просто была надежда что pivotgrid умеет это как-то сам делать

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182

Предыдущая тема: Язык программирования на русском языке


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