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

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

Автор: AAlexander
Дата сообщения: 01.12.2011 14:39
mdid

Цитата:
числа 0-9 в количестве 12 штук.

Это в Regexp? ^\d{1,12}$ пойдет?
Автор: mdid
Дата сообщения: 01.12.2011 14:48
AAlexander
не)
не реагирует..вообще не дает писать

Добавлено:
\d{1,12} при emkRegExprEx пошло...спасибо большое
Автор: sam291074
Дата сообщения: 01.12.2011 17:39
marser

Цитата:
А неужели так сложно в TStrings узнать номер строки? Items.IndexOf()

Да согласен, так можно, но IndexOf в качестве аргумента требует саму строку и именно по ее содержимому определяется позиция в списке. А если пользователь изменил содержимое строки? Т.е. позиция сохранилась, а содержимое нет. В этом случае IndexOf не поможет.
Автор: AAlexander
Дата сообщения: 01.12.2011 18:37
mdid
Пожалуйста

All
Эх, кто-бы мне здесь помог http://forum.ru-board.com/topic.cgi?forum=33&topic=10884&start=3260#3

Или я не вовремя?
Автор: marser
Дата сообщения: 01.12.2011 18:58
sam291074

Цитата:
А если пользователь изменил содержимое строки? Т.е. позиция сохранилась, а содержимое нет

Не зная задачи, я не совсем понимаю, что Вам требуется. Вы случайно, используя ComboBox, не пытаетесь сделать аналог LookupComboBox?


Добавлено:
AAlexander
Здесь не так много дотнетовцев. Ждите, может объявятся.
Автор: sam291074
Дата сообщения: 01.12.2011 20:45
marser

Цитата:
Не зная задачи, я не совсем понимаю, что Вам требуется. Вы случайно, используя ComboBox, не пытаетесь сделать аналог LookupComboBox?


Да нет, все проще. При локализации приложения изменяются строки, и проще бы было в коде обработки использовать не строки, а их индексы (они то не меняются).
Несколько сложнее эту задачу можно решить, но индексами было бы проще всего.

Просветите, а чем LookupComboBox отличается от ComboBox, никогда им не пользовался?
Автор: BlackVetal
Дата сообщения: 02.12.2011 04:50
AAlexander

Цитата:
Подскажите пожалуйста:
Я использую XtraGrid совместно с Linq to Sql. Грид используется для отображаения задач(имя, описание, проект (объект типа проект), исполнитель (объект типа исполнитель)). Использую один MainView и для нужных колонок назначаю GroupIndex.
Всё работает, отображется и редактируется без проблем. Проблема возникает, когда пользователь хочет увидеть задачи сгруппированные по исполнителю и при этом чтобы грид показывал также тех исполнителей, для которых ещё не назначено ни одной задачи. Есть ли возможность данной колонке указать всех исполнителей, чтобы в результате были показаны все они(исполнители)?

А новый запрос составить? По-моему здесь (как я вас понял) у вас получается один набор данных, и вы в зависимости от условий его группируете. Тогда вполне возможно, что у вас просто не хватит данных для решения вашей задачи. Поэтому здесь только вариант создавать новый запрос, в котором будут все исполнители, а затем группировка.
Еще мысль - попробуй XPO, может проще будет решить твои задачи ...
Автор: wasilissk
Дата сообщения: 02.12.2011 04:56
sam291074

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

Имеются в виду коды наверно, а не индексы? Индексы меняются при вставке элемента в список. Т.е. тут необходимы как минимум два соответствующих списка. LookupComboBox и представляет собой средство редактирования таких списков. Хранит/изменяет коды чего-то, а показывает их соответствующие заголовки.
Автор: sam291074
Дата сообщения: 02.12.2011 05:50
wasilissk
Да нет, в данном случае именно индексы. Было три строки на русском, осталось там же, но на другом языке. Попробую присмотреться к LookupComboBox.
Автор: wasilissk
Дата сообщения: 02.12.2011 05:55
sam291074
Если интересно, можно посмотреть механизм локализации в EMS Advanced Localizer.
Автор: AAlexander
Дата сообщения: 02.12.2011 10:32
BlackVetal

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

Да, ты правильно всё понял. Только группирую в любом случае. Но группирую не запросом, а гридом. Согласен, с результата запроса данных для всех группировок недостаточно. Я поэтому надеялся, что полный список значений (допустим, в отдельном списке) можно как-то отдельно предоставить гриду, чтобы он группировку показывал, но с пустым набором строк.

Сделать запрос, в котором уже будет содержаться нужная мне группировка я могу, но как его скормить гриду? Это же будут уже другие объекты в Датасорсе.


Цитата:
Еще мысль - попробуй XPO, может проще будет решить твои задачи ...

Исключено, XPO как компонент не был куплен фирмой.
Автор: X11
Дата сообщения: 02.12.2011 10:41
marser


Код: ShowMessage(IntToStr((cxVerticalGrid1EditorRow1.Properties.EditProperties as TcxComboBoxProperties).items.indexof(cxVerticalGrid1EditorRow1.Properties.Value)));
Автор: BlackVetal
Дата сообщения: 02.12.2011 12:29
AAlexander
1. а если два источника создать с разным набором данных - во время выполнения группировок уже подставлять нужный
2. сделать один набор данных - полный, то есть со всеми исполнителями (но с пустыми строками), а в гриде использовать фильтры в зависимости от условий
Автор: marser
Дата сообщения: 02.12.2011 12:30
X11
А зачем Вы мне это написали? Вопрос про Index в ComboBox интересовал не меня, а sam291074. То, что нужно использовать Items.IndexOf я написал еще вчера:

Цитата:
А неужели так сложно в TStrings узнать номер строки? Items.IndexOf()
Автор: AAlexander
Дата сообщения: 02.12.2011 23:40
BlackVetal
Всё, задача отпала за ненадобностью. Почему - не спрашивай
Но всё равно спасибо!
Автор: alexmir
Дата сообщения: 06.12.2011 17:35
Доброго всем дня! Подскажите как можно в компоненте dxDBTreeView дочернюю ветку перенести под другого родителя? Заранее всем спасибо.
Автор: xokc
Дата сообщения: 06.12.2011 18:34
alexmir
Поменять ParentID дочерней ветки на ID нового родителя
Автор: marser
Дата сообщения: 06.12.2011 19:14
alexmir

Цитата:
Доброго всем дня! Подскажите как можно в компоненте dxDBTreeView дочернюю ветку перенести под другого родителя? Заранее всем спасибо.

Проще всего сделать перенос мышкой (Drag and Drop). DragMode = dmAutomatic. Кажется, в Demo был какой-то пример.
Автор: pavelvoron
Дата сообщения: 07.12.2011 12:29
Доброго дня.
Работаю в Delphi2009 (CodeGear) Экспериментировал с стилями DevExpress, теперь лишние удалить из проекта не могу, при сохранении компиляции они вновь добавляются и исполнительный файл раздувается до нельзя, как избавиться от лишних стилей типа "dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky...."

Проблему решил ручками, нашел рядом с проектом файлик [имя проекта].skincfg удалил лишние скины. запустил проект, скомпилил, сохранил, лишние скины не добавились.
Автор: vladman
Дата сообщения: 07.12.2011 16:43
pavelvoron

Цитата:
Проблему решил ручками, нашел рядом с проектом файлик [имя проекта].skincfg удалил лишние скины. запустил проект, скомпилил, сохранил, лишние скины не добавились.

Существует и штатный способ - Project Skin Option Editor, доступный через Menu Project - Modify Skin Options.
Автор: pavelvoron
Дата сообщения: 08.12.2011 08:14
его я не заметил сразу, только после того как руками поудалял лишнее, появилось окно опций
Автор: tanaseduard
Дата сообщения: 08.12.2011 14:20
Есть у когото опыт портирования скинов девок для иных компонентов.
Например^
phGhant
SynEdit.
Хочется чтоб приложение все было в одном стиле.
Или есть иные варианты скинить все компоненты?
Автор: LadyOfWood
Дата сообщения: 08.12.2011 18:55

Цитата:
Хочется чтоб приложение все было в одном стиле.
Или есть иные варианты скинить все компоненты?

Руками, только. Там вообщем ничего сложного нет, но отрисовку надо брать из скина. SynEdit думаю вообще хватит скинованных скроллов.
Автор: tanaseduard
Дата сообщения: 08.12.2011 19:00
LadyOfWood
Очень интересует phGhant. Руцями не совсем кошерно
Автор: volser
Дата сообщения: 08.12.2011 19:57
tanaseduard
И как паинтер скинов будет знать как нужно рисовать если там своя отрисовка?
Автор: tanaseduard
Дата сообщения: 08.12.2011 21:37
volser
Вот собственно и вопрос можно ли Painter их натравить н иные компоненты, если стили я прикрутить смог то вот отрисовку бордеров не получается пока.
Автор: Man_Without_Face
Дата сообщения: 09.12.2011 10:54
Использую cxCheckGroup. В нем 10 флажков. Такой вопрос: как сделать что бы больше трех нельзя было выбрать? Остальные или блокировались бы или слетал флажок с первого выбранного. Спасибо.

Добавлено:
И как проверить какие выбраны, а какие нет?

Добавлено:
С проверкой разобрался: if cxCheckGroup1.States[0] = ;
cbsUnchecked, cbsChecked, cbsGrayed
Автор: fortezza
Дата сообщения: 13.12.2011 07:14
использую компонент TcxButtonEdit
когда изменяю значение EditValue срабатывает событие .Properties.OnPropertiesChanged и в нем также изменяется EditValue, что опять запускает .Properties.OnPropertiesChanged.
Как этого избежать? Есть ли какое-то свойство?

или, например, можно делать так:


Код: procedure ....cxBEPropertiesChange(Sender: TObject);
var be : TcxButtonEdit;
ne : TNotifyEvent;
begin
be := TcxButtonEdit(Sender);
ne := be.Properties.OnPropertiesChanged;
be.Properties.OnPropertiesChanged := nil;

...

be.Properties.OnPropertiesChanged := ne;
end;
Автор: dimm78
Дата сообщения: 13.12.2011 08:08

Цитата:
использую компонент TcxButtonEdit
когда изменяю значение EditValue срабатывает событие .Properties.OnPropertiesChanged и в нем также изменяется EditValue, что опять запускает .Properties.OnPropertiesChanged.
Как этого избежать? Есть ли какое-то свойство?


Обычно в случаях когда на OnPropertiesChanged нужно что то сделать с EditValue я делаю так:

var Lock : Boolean;

procedure ....cxBEPropertiesChange(Sender: TObject);
begin
if not Lock then
begin
Lock := True;
try
//что-то делаем с EditValue
finally
Lock := False;
end;
end;
end;
Автор: marser
Дата сообщения: 13.12.2011 09:13
fortezza
Может это поможет:

Код: if TcxCustomEdit(Sender).ModifiedAfterEnter then
begin
....
end;

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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