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

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

Автор: X11
Дата сообщения: 17.04.2009 10:48
cxLookupCombobox.Properties.ListSource.DataSet.FieldByName('ID').asInteger;
Автор: Meister Floh
Дата сообщения: 17.04.2009 17:01
TcxCustomInplaceEditContainer.Properties - где бы почитать повнимательнее.. ???
Автор: Meister Floh
Дата сообщения: 19.04.2009 08:55
И вообще ТриЛист настолько паскудно документирован, что завал, половина класов не доступна в дизайн-тайм, а если и доступна, то закопана в такой тохес, что откопать нереально.. Описание половины классов и свойств отсутствует.. Так и не разобрался с гроупин нодес.. Может с выходом три-лист 5 финал и доку поправят.. очень хотелось бы..
Автор: Kim006
Дата сообщения: 19.04.2009 09:51
Можно както сделать следующее:
делаю вставку в TableView новой строки (посредством нажатия insert на клавиатуре или кнопки "+" в навигаторе), в обработчике в эту новую строку сразу же добавляется какоето значение (типа так: ->Values[0]="666";), строка появилась, "666" в колонке 0 этой строки нарисовалось, далее если в этой же строчке чего нибудь набрать с клавиатуры то все ок, а вот есле сразу после вставки перейти на другую запись, ничего туда не вписывая - она естествеено пропадает - это можно как-то выключить?
Автор: X11
Дата сообщения: 19.04.2009 11:00
Не знаю. Может поискать в свойствах датаконтроллера или самого поля что-то вроде ImmediatePost?

Добавлено:
Тут вот до меня дошло, что девки с юникодом облажались при работе с базами данных. Короче если в датасете поле типа TWideStringField, то юникодные поля отображаются нормально. А если TStringField, то девки думают, что это вовсе и не юникод и отображают кракозябры. Это я про работу девок в D2009.
Автор: xokc
Дата сообщения: 19.04.2009 11:10
Kim006

Цитата:
а вот есле сразу после вставки перейти на другую запись, ничего туда не вписывая - она естествеено пропадае

Пропадает вся строка или только ее содержимое?
Автор: Kim006
Дата сообщения: 19.04.2009 11:22

Цитата:
Пропадает вся строка или только ее содержимое?


Вся строка. т.е. TableView думает что она пустая (хотя это не так) и убирает ее...
Автор: Meister Floh
Дата сообщения: 19.04.2009 16:04
Kim006
А Post пробовал делать?
Автор: zvAndrey
Дата сообщения: 19.04.2009 16:35
Kim006
Попробуй такой вариант:
uses cxDataUtils;
в OnNewRecord
ADataController.SetEditValue(cxGrid1TableView1Column1.Index, 'New Value', evsValue);
Автор: Kim006
Дата сообщения: 19.04.2009 22:50
С Post пробовал - строка мельком появляется и исчезает...

а вот ADataController.SetEditValue(cxGrid1TableView1Column1.Index, 'New Value', evsValue); то что доктор прописал все работает. только почемуто NULL записывается как 0 но это неважно.
Автор: afiget
Дата сообщения: 19.04.2009 23:44

Цитата:
Короче если в датасете поле типа TWideStringField, то юникодные поля отображаются нормально. А если TStringField, то девки думают, что это вовсе и не юникод и отображают кракозябры.

Все как в Д2009. Так что по поводу облажались вынужден несогласиться. Наоборот, так даже понятнее.
Автор: X11
Дата сообщения: 20.04.2009 10:45

Цитата:
Все как в Д2009.

Так это я про Д2009 и говорю.


Цитата:
Так что по поводу облажались вынужден несогласиться.

1. TStringField - в D2009 это юникод, а девки об этом не знают.
2. Другие гриды с TStringField работают правильно.
Автор: afiget
Дата сообщения: 20.04.2009 21:25

Цитата:
TStringField - в D2009 это юникод, а девки об этом не знают.

Врядли: https://forums.codegear.com/thread.jspa?threadID=12192&tstart=-1
Там же, кстати, и решение - конвертить.
Автор: ZalivkoDenis
Дата сообщения: 21.04.2009 00:54
Доброго времени суток!
Товарищи, может кто-нить встречался с проблемой. CG2007 (Delphi), девки v.42, XP Sp3. Долго не мог понять, что происходит, но вот, наконец, вошёл в согласие с самим собой и в противоречие с системой. Использую TcxButton. На работе в Glyph указанного объекта загружаю .png и прокатывает, а дома -- пишет ошибка формата... Может кто-нить подскажет в чём трабла? Может студия подглючивает (сначала я думал, что у меня моск подглючивает, потому как точно был уверен, что грузил .png в указанное свойство, а дома не сросталось, делал вывод, что что-то попутал, а вот сегодня проверил и пребываю в некоторм замешательстве -- не попутал, на работе грузит, а дома нет )?
Заранее благодарен за помощь. (Так нехоцца всё переставлять, что просто жуть, тем более времени на это нет просто никакого )
Автор: TechnoDreamer
Дата сообщения: 21.04.2009 02:22
Возникла такая проблема.
Использую TdxBarCombo. Мне необходимо событие OnClick. Но на нем оно просто не вызывается, в TdxBarManager, событие OnClickItem тоже не вызывается (вызывается только на кнопках).
OnChange мне не подходит, потому что вызывается оно не только по клику юзера, но и при программном изменении выделенного элемента. Что делать?
Автор: zvAndrey
Дата сообщения: 21.04.2009 17:58
TechnoDreamer
Действительно не работает и кажется так и будет.
http://www.devexpress.com/issue=AB9588
Они рекомендуют использовать onChange и при программном изменении сбрасывать, на время, обработчик.
Автор: xokc
Дата сообщения: 21.04.2009 19:55
ZalivkoDenis
Это уже недавно обсуждалось здесь - поищи. По-моему дело либо в разном наборе установленных компонент, либо в разно порядке из загрузки - от этого зависит кто первым регистрирует png как графический формат.
Автор: dc
Дата сообщения: 21.04.2009 20:58
X11:
поменял с TStringField на TWideStringField.
выдает ошибку:
---------------------------
Error
---------------------------
DataSet: Type mismatch for field 'XXX', expecting: WideString actual: String.
---------------------------
OK Details >>
---------------------------

где и что нужно ещё прикрутить?
Автор: X11
Дата сообщения: 21.04.2009 21:08
dc, конкретнее, что где как поменял, что за компоненты, какой charset подключения, в какой кодировке база?
Автор: dc
Дата сообщения: 21.04.2009 21:17
D2009, FIBPlus 6.9.6 Release for 2009, Devexpress .42
Charset базы и коннекта UTF8.
По умолчанию тип поля в датасете был TFIBStringField.
Пробывал менять на TFIBWideStringField и TWideStringField - выдаёт ошибку.

DataSet: Type mismatch for field 'XXX', expecting: WideString actual: String.
Автор: X11
Дата сообщения: 21.04.2009 22:21

Цитата:
Пробывал менять на TFIBWideStringField и TWideStringField - выдаёт ошибку.

А как менял? Ты в курсе про {$DEFINE UNICODE_TO_STRING_FIELDS}
Автор: omihaz
Дата сообщения: 22.04.2009 01:13
Помогите решить проблему. Думаю просто DevExpress, это не поддерживают.
Вообщем если использовать Ribbon BarManager (интерфейс в стиле Office 2007), то ко всем элементам TdxBar можно устанавливать свойство ScreenTip: TdxBarScreenTip, и по наведению мыши на элемент мы видим красивый HINT, с названием, описанием и даже картинку можем вставить.

Хотелось бы такие же hints применять к другим элементам, например cxButtons, cxEdit, cxGroupBox, cxTextEdit, cxLabel... Либо даже к стандартным компонентам, заменить стандартный скромный хинт, на Ribbon-хинт. Было бы очень полезно и наглядно.

Пробовал добавить свойства, но там все наследуется от баров и ничего толкового не получилось сделать Скорей всего руки не оттуда растут... Подскажи пожалуйста можно ли решить мою задачу вообще и каким образом?
Автор: dc
Дата сообщения: 22.04.2009 07:41
X11, спасибо!

{$DEFINE UNICODE_TO_STRING_FIELDS} - это было!
Автор: Kim006
Дата сообщения: 22.04.2009 11:30
Столкнулся с проблемой - как заставить работать следующее:
AView->Controller->EditingController->Edit->EditingValue.IsNull()
(всегда возвращает false)

т.е. нужно проверить данные были добавлены или стерты из ячейки (любого типа).

Автор: afiget
Дата сообщения: 22.04.2009 13:08
omihaz
TcxHintStyleController
Автор: jicoff
Дата сообщения: 22.04.2009 15:06
Kim006

Если не ошибаюсь, то при стирании строкового поля Value принимает значение пустой строки, если не делать Clear(), тогда будет null. С числовыми надо смотреть.
Автор: Kim006
Дата сообщения: 23.04.2009 00:41
jicoff

Цитата:
Если не ошибаюсь, то при стирании строкового поля Value принимает значение пустой строки, если не делать Clear(), тогда будет null. С числовыми надо смотреть.

Вопрос в том - как это проверить. if(AView->Controller->EditingController->Edit->EditingValue != NULL){...} не прокатит, да и не корректно это.
Clear() и.т.п. не вызываются, ячейки таблицы редактируются с клавиатуры.
Автор: alexbozhko
Дата сообщения: 23.04.2009 02:49
Господа!
Помогите советом.
Есть датасет. К нему привязан cxGrid, обычное табличное отображение. В Датасете есть несколько LookUp полей. Соответственно, при нажатии на на соответствующий им Cell в Гриде должен открываться выпадающий список. Но хитрость вся в том, что мне необходимо прилепить к этому списку сверху кнопку "добавить новое значение".
Примерно так:

В голову приходит только для соответствующего поля в GridView сделать Property PopupEdit. И в качестве PopupControl указать еще один Грид, заголовок единственного поля которого и будет выполнять роль этой кнопки. Вроде бы так и сделал. Но вылетает Access Violation при попытке закрыть этот список. При чем только при выборе определенных записей в списке. Ни какими обработчиками в DataSet это вроде бы не связано.
Может нечто подобное можно как-то проще смастерить?


Автор: sldaac
Дата сообщения: 23.04.2009 08:21
alexbozhko
А интересно куда ты будеш добавлять новое значение, если у тебя LookUp поле
Ты проясни мысль, что надо, а не как ты хочеш.
Автор: infomSB
Дата сообщения: 23.04.2009 08:23
alexbozhko
А почему нельзя в лукапе просто добавить значение "Добавить элемент", а при его выборе сделать обработчик для создания нового элемента.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081

Предыдущая тема: Delphi: tcp клиент в потоке


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