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

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

Автор: X11
Дата сообщения: 16.02.2012 11:39
При чем здесь редактор, если мне нужно, чтобы пользователь смог выбирать значения ОТ и ДО.
Грид создается динамически со разными типа строк.
Пользователь выбирает значения, в некоторых, например, с даты по дату.
Потом строится SQL запрос на основе выбранных значений.

Так что огород городить с PopupEdit`ами не самая хорошая идея.
Автор: X11
Дата сообщения: 16.02.2012 16:37
Странно ведет себя cxBarEditItem типа TextEdit.
Ввожу текст, нажимаю кнопку, отладчик показывает, что cxBarEditItem.EditValue равно Null.
Почему Null, я же ввёл туда значение.
Автор: tanaseduard
Дата сообщения: 16.02.2012 16:41
X11
А SaveText стоит в True в DxBar?
Посмотри что у тебя в EditingValue
Автор: X11
Дата сообщения: 16.02.2012 17:00
В том-то и дело, что свойств EditingValue у TcxBarEditItem отсутствует.
Свойство SaveText у TdxBar тоже не нашел.

У меня Dev 2011.2.3
Автор: BlackVetal
Дата сообщения: 17.02.2012 06:15
X11
на c# есть такое событие CustomDrawRowHeaderCell - для редактирования заголовка, CustomDrawRowValueCell - ячейка
По Делфи не знаю аналоги ...
Насчет barEditItem - помоему нужно обращатся к textedit ...
Автор: MagistrAnatol
Дата сообщения: 17.02.2012 08:24
Господа, есть ХЕ2 грид и поле дататайм - и в гриде отображается 16.02.2012 01:20 вместо 16.02.2012 13:20 .Дисплей формат dd.mm.yyyy hh:nn не помог - как перевести в нормальное 24 часовое отображение?
в базе файребирд записано все нормально
Автор: salexn1
Дата сообщения: 17.02.2012 08:46
MagistrAnatol
посмотри в самой колонке настройки.
Автор: dimm78
Дата сообщения: 17.02.2012 08:46

Цитата:
Господа, есть ХЕ2 грид и поле дататайм - и в гриде отображается 16.02.2012 01:20 вместо 16.02.2012 13:20 .Дисплей формат dd.mm.yyyy hh:nn не помог - как перевести в нормальное 24 часовое отображение?
в базе файребирд записано все нормально


1. Посмотрите какой DisplayFormat формат выставлен для самого поля FIBDataSet.
(у меня dd.mm.yyyy hh:mm:ss отображает в 24-м формате)
2. Проверьте настройки отображения даты в панели Язык и региональные стандарты Windows
3. Возможно поможет задать маску отображения для времени в виде HH:mm
Автор: X11
Дата сообщения: 17.02.2012 08:59
MagistrAnatol, посмотрите настройки в самой ОС.
Автор: MagistrAnatol
Дата сообщения: 17.02.2012 09:02
X11
в смысле региональные настройки?Украина стоит
Автор: X11
Дата сообщения: 17.02.2012 10:01
Панель управления / Язык и региональные стандарты / кнопка Дополнительные параметры / закладка Время

Там можно указать 12/24 формат времени. Ничего там такого нет?

вот так должно быть

http://i32.fastpic.ru/big/2012/0217/02/4a6f10f6742b75e1a5e9c9bbd6386202.png


Добавлено:
Что за компоненты доступа к СУБД? Если FibPlus, то у TpFibDataSet есть свойство DefaultFormats...
Автор: Lena44
Дата сообщения: 17.02.2012 10:17
Подскажите, пожалуйста, как в cxTreeList родительские узлы (которые с плюсиком) раскрасить одним цветом, а дочерние другим цветом? Я нашла только, как можно менять цвета в четных и нечетных строках cxTreeList в свойстве Styles, а как задать раскраску родительских и дочерних узлов?
Автор: X11
Дата сообщения: 17.02.2012 10:29
Так как же всё-таки получить текущее значение у TcxBarEditItem?
Автор: mdid
Дата сообщения: 17.02.2012 10:33
Lena44
не уверен но вроде такие вещи обычно решались с помощью события OnGetContentStyle
Автор: X11
Дата сообщения: 17.02.2012 10:34
Можно, конечно, использовать костыль



Код: procedure TfmAds.edTextAdPropertiesChange(Sender: TObject);
begin
TcxTextEdit(Sender).PostEditValue;
end;
Автор: mdid
Дата сообщения: 17.02.2012 10:36
X11
я тоже когда то ломал голову..для себя нашел решение в виде обработки события OnCurChange
где прописал EditValue:=CurEditValue;
Автор: X11
Дата сообщения: 17.02.2012 10:42
Я нашёл свойство CurEditValue у TcxBarEditItem, но оно тоже имеет значение Null, пока не нажмешь Enter

Добавлено:
mdid, я понимаю, но это тоже костыль
Автор: mdid
Дата сообщения: 17.02.2012 10:50
X11
а какая у вас задача? проверять значение до ентера? если да то тогда вам в OnCurChange
у меня просто этот компонент обычно отвечает за поиск внизу формы..поэтому мне нужен моментальный пост
Автор: X11
Дата сообщения: 17.02.2012 10:51
И не могу понять чем отличается EditValue от CurEditValue, в справке ни слова про CurEditValue.

Добавлено:
mdid, какая разница какая задача? Задача - получить введенный текст без доп. усилий.

Это получается, что пользователь обязательно должен после каждого ввода нажимать Enter, чтобы подтвердить введенные данные.
Автор: mdid
Дата сообщения: 17.02.2012 11:10
X11
не должен будет если вы позаботитесь об этом..
на сколько я понял CurEditValue это значение которое в данные момент находится в режиме редактирования и только по наступлению пост оно появляется в EditValue
в общем решение есть...ну не предусмотрели создатели девок такую штуку как immediate post..приходится извращаться..тем более с девками я уже года 4...и эта хреновина тянется оооч давно...видимо их все устраивает
Автор: dimm78
Дата сообщения: 17.02.2012 11:39

Цитата:
в общем решение есть...ну не предусмотрели создатели девок такую штуку как immediate post..приходится извращаться..тем более с девками я уже года 4...и эта хреновина тянется оооч давно...видимо их все устраивает


Пытался заявить эту ситуацию как баг пару месяцев назад, но они меня отфутболили сообщив что это предусмотрено дизайном компонентов, а если хотите чтобы не нужно было нажимать Enter обрабатывайте эту ситуацию сами. Так что ничего не остается кроме вариантов вышеизложенного)))
Автор: Lena44
Дата сообщения: 17.02.2012 21:46

Цитата:
mdid
не уверен но вроде такие вещи обычно решались с помощью события OnGetContentStyle


Спасибо. Получилось:
void __fastcall TForm1::cxTreeList1StylesGetContentStyle(TcxCustomTreeList *Sender,
         TcxTreeListColumn *AColumn, TcxTreeListNode *ANode, TcxStyle *&AStyle)

{
if(ANode->HasChildren == true)
{
     AStyle = cxStyle3;
}
else
     {
     AStyle = cxStyle2;
}
}
Автор: Dima335
Дата сообщения: 18.02.2012 23:09
Можно ли у SpreadSheet закрепить крайнюю левую колонку, чтобы она отображалась всегда при перемещении по горизонтали? Т.е. как со свойством fixed kind у колонки грида
Автор: exteris
Дата сообщения: 20.02.2012 07:45
Dima335, можно.
Здесь есть пример.
Автор: MagistrAnatol
Дата сообщения: 20.02.2012 07:59
X11
точно так и стоит
Автор: mdid
Дата сообщения: 20.02.2012 10:21
народ а подскажите такую штуку..точнее 2 штуки
1. как запретить pop up в гриде когда нажимаешь пкм на пустом пространстве а не на записи (всегда бесило это)
2. если ли аналог Tupdown у девок..а то стоит стандартный и под скином он как инородное тело
Автор: KAndrew13
Дата сообщения: 20.02.2012 12:09
Добрый день, подскажите, можно ли сделать отдельный столбец в cxGrid для нумерации строк в гриде?
Автор: X11
Дата сообщения: 20.02.2012 12:14
Выводим номер по порядку


Цитата:
procedure TBaseDocWithRows.View1NumGetDisplayText(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; var AText: string); var
Row: Integer;
begin
inherited;
// if ShowNumCol then
// begin
Row := Sender.GridView.DataController.GetRowIndexByRecordIndex(ARecord.RecordIndex, False)+1;
AText := IntToStr(Row);
// end;

//ARecord.RecordIndex
end;


пример нарыл где-то в интернете

Добавлено:
ВОТ:
http://forum.ru-board.com/topic.cgi?forum=33&topic=10123&start=580#21
Автор: KAndrew13
Дата сообщения: 20.02.2012 12:48
X11 спасибо.
Автор: mdid
Дата сообщения: 20.02.2012 13:02
а ведь можно проще..туда же

Код: AText:=IntToStr(ARecord.Index + 1);

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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