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

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

Автор: Cryogen2003
Дата сообщения: 27.08.2010 10:30
dimm78
Вот с этого место поподробнее, это как?????
Скины у меня грузятся не динамически, динамически грузиться только проверка орфографии (русская и английская).
В памяти около 100 метров занимает после всего Большую часть съедают именно скины, хотя и только одна орфография дает около 20 метров
Автор: X11
Дата сообщения: 27.08.2010 10:42

Цитата:
В памяти после загрузки занимает до 30 метров.

Это не показатель. У меня на форме поиска 10 справочников (загрузка данных из базы), в некоторых справочниках по 1,5 тысячи записей, так что тут факторов хватает
Автор: crazypiggy
Дата сообщения: 27.08.2010 10:44
dimm78
Тут возникла такая проблема. Вводить буквы мне это поле не дает, только цифры. Скорее всего изза того что SprStreetsID integer
Автор: X11
Дата сообщения: 27.08.2010 11:08
Использую TcxDBTreeList. Вопрос такой. Вот для того, чтобы узнать значение ключевого поля я использую код:

Код: K := TcxDBTreeListNode(dbTreeTypes.FocusedNode).KeyValue
Автор: dimm78
Дата сообщения: 27.08.2010 11:14

Цитата:
Вот с этого место поподробнее, это как?????
Скины у меня грузятся не динамически, динамически грузиться только проверка орфографии (русская и английская).
В памяти около 100 метров занимает после всего Большую часть съедают именно скины, хотя и только одна орфография дает около 20 метров


На первой версии SpellChecker было то же самое. Когда перешел на вторую версию сменил тип словарей на Hunspell. Сами словари по прежнему использую от OpenOffice. Причем при старте грузятся и русский и английский.
Автор: crazypiggy
Дата сообщения: 27.08.2010 11:15
dimm78
Как мне ввести слова. Вводить буквы мне это поле не дает, только цифры. Скорее всего изза того что SprStreetsID integer
Автор: dimm78
Дата сообщения: 27.08.2010 11:18

Цитата:
Это не показатель. У меня на форме поиска 10 справочников (загрузка данных из базы), в некоторых справочниках по 1,5 тысячи записей, так что тут факторов хватает


Согласен что не показатель. Но при чем тут справочники и перерисовка? То что грузиться будет долго и отъедать много памяти при заливке всех справочников на клиента это точно. У меня тоже данных много. В некоторых случаях например в табличных отчетах и под 50 тысяч вываливается и более. никаких морганий нет.
Автор: Cryogen2003
Дата сообщения: 27.08.2010 11:20
dimm78
При первой версии у меня занимало в памяти где-то 170 метров, да, при переходе на вторую стало намного меньше, но все равно много
Автор: dimm78
Дата сообщения: 27.08.2010 11:29

Цитата:
Как мне ввести слова. Вводить буквы мне это поле не дает, только цифры. Скорее всего изза того что SprStreetsID integer


Да. Поэтому. Я бы на твоем месте подтягивал в запросе и код и название улицы. Поле кода в таблице можно не показывать. На столбец с именами улиц навесил обработчик который при выборе названия в комбобоксе апдейтит код улицы в строке.


Добавлено:

Цитата:
При первой версии у меня занимало в памяти где-то 170 метров, да, при переходе на вторую стало намного меньше, но все равно много


Проверь какого типа у тебя DictionaryItems компонента TdxSpellChecker
Автор: Cryogen2003
Дата сообщения: 27.08.2010 11:37
dimm78
Тогда был OpenOffice, сейчас hunspell
Автор: dimm78
Дата сообщения: 27.08.2010 11:38

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

Ну если ты используешь TcxDBTreeList и он синхронизирован с данными то FocusedNode должен соответствовать текущей записи твоего датасета. Из него и возьми ключевое поле по филднейму.


Добавлено:

Цитата:
Тогда был OpenOffice, сейчас hunspell

И какой размер сейчас при загрузке?
Автор: Cryogen2003
Дата сообщения: 27.08.2010 11:45
dimm78
Я же сказал, что только одна проверка на орфографию в памяти 30 метров занимает. А так, все приложение в памяти занимает порядка 100 метров Большую часть думаю занимают скины в памяти
Автор: dimm78
Дата сообщения: 27.08.2010 11:48

Цитата:
Я же сказал, что только одна проверка на орфографию в памяти 30 метров занимает. А так, все приложение в памяти занимает порядка 100 метров Большую часть думаю занимают скины в памяти

Ну первым делом я бы вытащил из приложения скины. Вторым этапом просто убрал автоматическое создание всех форм при запуске приложения, а создавал бы и грохал их по мере необходимости.
Автор: Cryogen2003
Дата сообщения: 27.08.2010 11:50
dimm78
Автоматически только одно форма создается, все остальные из нее по мере необходимости, прибиваются так же по мере необходимости
Автор: afiget
Дата сообщения: 27.08.2010 11:52

Цитата:
Будем надеяться, что в новых версиях DevExpress будет дана возможность программистам нормально работать с иконками 24x24

Он и дана. Не обессудь, но желания некоторых программистов не нашли воплощения в Microsoft GUI Guidelines, которым следуют разработчики DevExpress.
Автор: dimm78
Дата сообщения: 27.08.2010 11:56

Цитата:
Автоматически только одно форма создается, все остальные из нее по мере необходимости, прибиваются так же по мере необходимости


Странно. у меня тоже грузятся только дата модуль и главная форма. если отключить в настройках проги проверку орфографии и не грузить справочники, то при весе exe около 30 метров прога занимает в памяти в районе 10 метров. естественно при открытии/закрытии окошек этот размер скачет. можно посмотреть что еще может у тебя занимать столько памяти. может на старте открывается много датасетов с данными.
Автор: Cryogen2003
Дата сообщения: 27.08.2010 11:58
dimm78
Справочников много, но только один большой (по сотрудникам). Вообщем думаю самое большую часть памяти сжирают именно скины. Ладно, переведу на динамические скины, а там поглядим
Автор: X11
Дата сообщения: 27.08.2010 12:02

Цитата:
Ну если ты используешь TcxDBTreeList и он синхронизирован с данными то FocusedNode должен соответствовать текущей записи твоего датасета. Из него и возьми ключевое поле по филднейму.

Так SyncMode ведь может быть в False

Добавлено:


Цитата:
Будем надеяться, что в новых версиях DevExpress будет дана возможность программистам нормально работать с иконками 24x24

Он и дана. Не обессудь, но желания некоторых программистов не нашли воплощения в Microsoft GUI Guidelines, которым следуют разработчики DevExpress.

Т.е. иконки 32x32 в главном меню это типа круто? Ну и ну.
Автор: afiget
Дата сообщения: 27.08.2010 12:44

Цитата:
Т.е. иконки 32x32 в главном меню это типа круто? Ну и ну.

Ты зря смещаешь акценты. В споре нет смысла.
Есть стандарт, ты либо следуешь ему, либо пеняешь на себя.
Я, например, не обладаю большим объемом информации, но даже я сталкивался с программами, где это уместно: CAD, раскройка тканей и кожи, интерфейсы с сенсорными экранами в системах управления автоматизированными линиями производства, моделирование режимов работы ТЭЦ, медицина.
Везде нужная большая рабочая площадь (нельзя использовать панели инструментов), большие мониторы с мелким зерном, достаточно большое кол-во функций.
Автор: X11
Дата сообщения: 27.08.2010 14:51
afiget, я не смещаю, я просто не понимаю, если сделали возможность нормально использовать иконки 16x16 и 32x32, то почему не сделали возможность нормально работать с иконками 24x24? Вот в чём вопрос?
Автор: afiget
Дата сообщения: 27.08.2010 15:54
Раньше такого размера иконок вообще не было.
Цитата из перевода:

Цитата:
Иконки могут иметь размер 16х16, 32х32 и 48х48. Последний размер обычно не используется. Иконки могут иметь 16 или 256 цветов. При использовании ресурсного редактора среды Visual C++ 4.0 и выше иконки всех размеров можно хранить в одном файле, что обычно и делается. Для современных приложений обязательно наличие иконок размером как 16х16, так и 32х32.

С тех пор много времени ушло, но стандарты так и не поменялись - не было практической необходимости.
Автор: X11
Дата сообщения: 27.08.2010 16:06
Да, согласен, потому что не было столько разных мониторов и разрешений. А сейчас... довольно большие разрешения, вот например 1920x1080. На таком разрешение иконки 32x32 смотрятся сравнительно большими и если много пунктов меню выпадает, то главный пункт меню выпадает аж до нижней границы окна, а то и ниже. А вот иконки 16x16 смотрятся маленькими, не всё на них можно рассмотреть, а иконки красивый, красочные, с альфаканалом. А вот 24x24 в самый раз.
Автор: afiget
Дата сообщения: 27.08.2010 16:17
Поддержка иконок 24х24 появилась только в ВинХП. А элемент управления меню был создан еще в прошлом веке (в 70-х, если не ошибаюсь). С тех пор мало что изменилось.
Система предполагает, что пользователь может изменять размер шрифта в системе. И все приложения должны такие режимы поддерживать, а ОС, в свою очередь, гарантирует нормальное отображение картинки по заранее известным алгоритмам сглаживания и масштабирования.

Добавлено:
В принципе, все зависит от политики производителя. Борланд и последующие товарищи могли (могут) себе позволить немного отступать от регламента в отдельных вопросах.
А политика devExpress - четко придерживаться стандартов, которые публикует Microsof. Они ведь еще и делают компоненты под .Net, а там политика Microsoft еще жестче.
Не будешь случать дядей Microsoft, не получишь значка "Готов к работе с продуктами Microsoft" - уплывут покупатели и денюжка.

Добавлено:
Кстати, на MscOS иконок 24х24 нет вообще. Зато там есть 512х512
Автор: DarkDaver
Дата сообщения: 27.08.2010 17:17
Добрый день.
У меня возник вопрос такого характера.

Как мне провести группировку в гриде(XtraGrid). но так что бы не все элементы(строки) попали в группы, а только те которых в группе окажется больше 1 элемента.
То есть если в группе один элемент, то нужно выводит не группу а сам элемент.
Автор: rdenk1
Дата сообщения: 29.08.2010 13:15
Всем привет. У cxgrid ставлю Options View | Indicator в true, в запущенной программе выделяю несколько строк с пом. индикатора. Фокус при этом остается на одной из ячеек строки, которая была выделена последней. И если теперь нажать delete, то удалится текст из этой ячейки. Как сделать, чтобы вместо этого удалялись все выделенные строки таблицы?

При этом возможность редактирования ячеек должна остаться.
Автор: volser
Дата сообщения: 29.08.2010 16:50
rdenk1
Ctrl + Delete
Автор: X11
Дата сообщения: 29.08.2010 16:58
К cxPopupEdit привязал дерево cxDBTreeList

пользователь должен что-то выбрать, но я обязан проверить, выбрали он что-нибудь
код такой


Код:
dbTreeTypes := popupTypes.Properties.PopupControl as TcxDBTreeList;
dbTreeRegions := popupRegions.Properties.PopupControl as TcxDBTreeList;

if (dbTreeTypes.FocusedNode = nil) then
begin
MessageBox(Application.ActiveFormHandle, 'Не заполнено поле "Тип"', 'Ошибка!', MB_ICONSTOP or MB_OK);
popupTypes.DroppedDown := true;


(popupTypes.Properties.PopupControl as TcxDBTreeList).SetFocus;
//dbTreeTypes.SetFocus;

exit;
end;
Автор: vladman
Дата сообщения: 29.08.2010 22:37
rdenk1

Цитата:
Всем привет. У cxgrid ставлю Options View | Indicator в true, в запущенной программе выделяю несколько строк с пом. индикатора. Фокус при этом остается на одной из ячеек строки, которая была выделена последней. И если теперь нажать delete, то удалится текст из этой ячейки. Как сделать, чтобы вместо этого удалялись все выделенные строки таблицы?

У cxgrid свойства Options View нет. Вы скорее всего имели ввиду какой-то View. Какой? Какие свойства у вас установлены в свойстве OptionsSelection вашего View? В общем, давайте пример, так будет быстрее помочь с вашей проблемой.

Добавлено:
X11

Цитата:
как мне сфокусировать или выбрать любую запись в дереве?

Тогда ваш код с ошибкой никогда не выполнится. А так как пользователь явно должен выбрать, как я понимаю "ТИП", то фокусировать любую запись, скорее всего не есть верный подход.

Добавлено:
X11

Цитата:
Хочу положить две кнопки: ОК и Отмена
доп. панель использовать не хочу

Для "Отмена" установите свойство PopupSysPanelStyle в True. А чтоб "ОК" вставить - нужно подумать.
Автор: X11
Дата сообщения: 29.08.2010 23:19

Цитата:
Для "Отмена" установите свойство PopupSysPanelStyle в True. А чтоб "ОК" вставить - нужно подумать.

да в общем то и хватит, пользователь выбирает запись, нажимает "крестик" и выбор не отменяется

а так вообще было бы интересно установить 1-2 своих кнопок

Добавлено:

Цитата:
Тогда ваш код с ошибкой никогда не выполнится. А так как пользователь явно должен выбрать, как я понимаю "ТИП", то фокусировать любую запись, скорее всего не есть верный подход.

сфокусировать мне нужно для того, чтобы можно было с клавиатуры выбрать узел, а не щёлкать мышкой в дерево
Автор: vladman
Дата сообщения: 30.08.2010 00:12
X11

Цитата:
а так вообще было бы интересно установить 1-2 своих кнопок

в PopupSysPanel добавить кнопку, пожалуй, будет непросто. Проще где-то (служебная форма, например) поместить кнопку, написать ее обработчик onClick, а в обработчике события onPoppup вашего PopupEdit указать в качестве парента ваш cxDBTreeList. Правда немного придется повозиться с ее координатами, но, думаю, это не составит большого труда.

Цитата:
сфокусировать мне нужно для того, чтобы можно было с клавиатуры выбрать узел, а не щёлкать мышкой в дерево

В обработчике события onPoppup вашего PopupEdit выполните

Код: <Your>cxDBTreeList.FocusedNode :=<Your>cxDBTreeList.Items[0];

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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