Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress

Модерирует : ShIvADeSt

ShIvADeSt (29-01-2007 03:17): идем сюда
http://forum.ru-board.com/topic.cgi?forum=33&topic=7918
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

golkanavt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DevExpress

Обмен опытом, обсуждение нюансов и решение проблем возникающих при использовании библиотеки компонент Developer Express




 
Сами прирученные компоненты частенько приходят на водопой сюда

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 10:42 08-10-2003 | Исправлено: golkanavt, 15:41 08-09-2006
CAV



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DimaDiZ

Код:
 
  PostMessage(cxTextEdit1.InnerControl.Handle, EM_SETSEL, 0, -1);
 

 
 
Добавлено:
sergbl2003
RTFM EBARS.HLP "How to Create a Popup Menu at Runtime (C++Builder)"

Код:
Buttons[I] = new TdxBarButton(this);

Всего записей: 38 | Зарегистр. 09-06-2004 | Отправлено: 00:09 03-03-2006
DimaDiZ

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CAV
 
Спасибо, так текст хотя бы выделяется, но только до курсора - это если мышкой кликать (хотя в принципе видно как он моргает выделяясь весь, а затем только до курсора), а в dx нормально весь выделялся

Всего записей: 13 | Зарегистр. 18-12-2003 | Отправлено: 17:42 03-03-2006
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DimaDiZ
 
Я не совсем понял, какая логика нужна при клике мышью в cxTextEdit.
Можно, например,  обработчик OnClick для cxTextEdit сделать таким:
 if TcxTextEdit(Sender).SelText = '' then
   TcxTextEdit(Sender).SelectAll;
Тогда при клике выделяется весь текст.
При выделении мышью части текста - она и остается выделенной.
При двойном клике по тексту из нескольких слов - выделяется кликнутое слово.

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 23:58 03-03-2006
xokc

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопросы DimaDiZ напомнили мне одну мелкую пакость DevEx эдиторов - если в модальной форме cxEditor установлен как ActiveControl, то есть является фокусируемым при открытии формы, то весь его текст является выделенным и кроме того, прокрученным в конец (как если бы в нем последовательно нажать Home, Shift+End). При этом, если текст в контроле длинне, чем сам контрол - начала его (текста в смысле) не видно, что не есть правильно. Есть какой-нибудь очевидный способ это победить?

Всего записей: 477 | Зарегистр. 22-09-2002 | Отправлено: 10:22 05-03-2006
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xokc
Опять же непонятно, какое поведение требуется.  
Пусть TextEdit1 - ActiveControl формы.
Если в обработчик FormShow поместить код:
 
 TextEdit1 .Properties.AutoSelect := False;
 TextEdit1 .SetFocus;
 TextEdit1 .Properties.AutoSelect := True;
 
то после появления формы активным будет TextEdit1,
курсор будет в первой позиции,
текст будет невыделенным.

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 13:39 05-03-2006
CAV



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xokc
Так обычный TEdit же себя так же ведёт. Это пакость на DevEx, а Гейтса.
 
Ещё можно на FormShow сделать PostMessage(cxTextEdit1.InnerControl.Handle, EM_SETSEL, 0, 0);
 

Всего записей: 38 | Зарегистр. 09-06-2004 | Отправлено: 14:03 05-03-2006
xokc

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex47
Ну это же геморрой - на каждой форме такое вытворять. Кроме того, FormShow будет срабатывать при каждом показе окна, и тогда все время будет пытаться фокусироваться TextEdit1, даже если последний раз при прятании формы в фокусе был не он. А если TextEdit1 еще и в PageControl находится, да его Tab в настоящее время закрыт - получим Exception. Корректнее было бы это в FormCreate делать, там будет такой же Exception при SetFocus. Понятно, что можно все это проверять и отслеживать - но некрасиво это как-то.
 
CAV
Твое решение элегантней. Но:  
1) Прокрученность на конец текста не пропадает при этом. Наверное надо еще и WM_KEYDOWN с VK_HOME посылать. А это уже как-то не красиво.
2) В OnFormShow это тоже не-совсем правильно. Так как скорее это проблема FormCreate.
3) В dx компонентах и ранних cx я этого артефакта не замечал.
 
Но в целом, спасибо всем. Да и проблема в общем надуманная. Просто меня лично она раздражала.

Всего записей: 477 | Зарегистр. 22-09-2002 | Отправлено: 10:10 06-03-2006
samusev



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прошу помощи.
 
Есть грид на таблицу.  
-колонки только для чтения.
-одна колонка содержит суммарные значения полей другой таблицы.
 
Хочется при клике на ячейку этой колонки получить или Lookup таблицу или Popup форму - не важно по значениям, которые эту сумму составляют.... Но
 
Проблема в том, что при значении readonly на ячейку - никакой редактор (Properties) не вызывается.
 
Как быть?
 
 
Delphi7/ DevEx от 09.02.06

Всего записей: 75 | Зарегистр. 03-03-2005 | Отправлено: 12:17 06-03-2006
DimaDiZ

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex47
 
Нужно следующее поведение (что достигается применением PostMessage(dxTextEdit1.Handle, EM_SETSEL, 0, -1); в OnEnter на старых dx):
при первом одинарном клике мышью выделяется все (аналогично переходу на поле по Tab), при последующих кликах все работает стандартно, проще говоря, клик мышью должен просто активировать компонент, однако он еще и двигает выделение, что как раз не нужно...
 
if TcxTextEdit(Sender).SelText = '' then TcxTextEdit(Sender).SelectAll;  
 
не приводит к нужному результату, так как выделяет весь текст при любом клике по компоненту, хотя требуется, например, просто спозиционировать курсор

Всего записей: 13 | Зарегистр. 18-12-2003 | Отправлено: 13:18 06-03-2006
CAV



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
samusev
Обработать OnGetProperties колонки. Там посетить AProperties, например из cxEditRepository.

Всего записей: 38 | Зарегистр. 09-06-2004 | Отправлено: 13:30 06-03-2006
inner

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как объединить несколько колонок под один Caption в гриде?

Всего записей: 97 | Зарегистр. 10-12-2005 | Отправлено: 20:47 06-03-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
inner
Используй Banded Table или DB Banded Table  

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 21:13 06-03-2006
Felix



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Мужики, подскажите: есть таблица в ней прмерно 1,5 млн записей. При попытке отобразить данную массу в QuantumGrid приложение висит. Как бороться?

----------
In My Opinion!

Всего записей: 965 | Зарегистр. 20-01-2002 | Отправлено: 09:26 07-03-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Felix
Попробуй в GridView установить DataController.GridMode=True. Хотя, скорее всего, это проблема датасета или нехватка ресурсов

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 09:46 07-03-2006
Felix



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
gpi
ставил, толку нет. Мне не совсем понятна идеология работы грида с данными. Что он пытается с ними сделать?
 
Добавлено:

Цитата:
нехватка ресурсов  

это маловероятно.

----------
In My Opinion!

Всего записей: 965 | Зарегистр. 20-01-2002 | Отправлено: 09:57 07-03-2006
vshersh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Felix
Если GridMode = True то данные вытаскиваются порциями, как и в обычном гриде (DBGrid) иначе все данные фетчатся в память и находятся там.  
1) Попробуй открыть свой НД в обычном ДБгриде. Посмотри насколько быстро будет бегать там. Дев-экспресс быстрее работать не будет ни при каких настройках (на таком объеме данных)
2) откажись вытягивать весь НД в грид. Используй фильтры. Если эта таблица, например, содержит данные за какойто период, то сделай на форме фильтр с возможностью выбора периода - по умолчанию показывай данные за последний месяц (неделя, день...) а уже если юзер выберет фильтр за 10 лет -- тогда это его проблема - пусть ждет.
 
Лично я за 2-й вариант
 
 
Добавлено
Сорри не тому адресовал пост
 
 
 

Всего записей: 506 | Зарегистр. 12-01-2006 | Отправлено: 10:39 07-03-2006 | Исправлено: vshersh, 10:40 07-03-2006
Felix



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vshersh
Спасибо, попробую.

----------
In My Opinion!

Всего записей: 965 | Зарегистр. 20-01-2002 | Отправлено: 10:47 07-03-2006
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DimaDiZ

Цитата:
Нужно следующее поведение (что достигается применением PostMessage(dxTextEdit1.Handle, EM_SETSEL, 0, -1); в OnEnter на старых dx):  
...
 
Понял. Тогда можно попробовать так:
 
implementation
var
Enter: Boolean;
 
1. Код обработчика OnEnter для cxTextEdit:
    Enter := True;
 
2. Код обработчика OnClick для cxTextEdit:
    if Enter then
      begin
       TcxTextEdit(Sender).SelectAll;
       Enter := False;
      end;

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 20:26 07-03-2006 | Исправлено: Alex47, 20:29 07-03-2006
DimaDiZ

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex47
 
Так действительно работает, спасибо за идею
Можно даже без отдельной переменной обойтись дергая tag у сендера.
Интересно, что за фигню они таки сотворили с системными сообщениями, если не работает такая простая команда...

Всего записей: 13 | Зарегистр. 18-12-2003 | Отправлено: 16:49 09-03-2006
ShamaN



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Возможен ли в ExpressFlowChart поворот объекта?

Всего записей: 1297 | Зарегистр. 23-09-2004 | Отправлено: 23:50 09-03-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress
ShIvADeSt (29-01-2007 03:17): идем сюда
http://forum.ru-board.com/topic.cgi?forum=33&topic=7918


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru