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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



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

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




 
DLL со скинами из библиотеки dxSkins, автор Ziltoid Подробнее... линк обновлен
Продолжение, Первая часть, вторая часть, третья часть

Полезные утилиты:
DxAutoInstaller v2.1.10 Простой и удобный тул для установки девок из исходников
https://mega.nz/#!aJRQzSqI!N7RgfcG1tfF45Z3OgcmBDHT_ZcWlIgJQ5eHHgQ9VupE

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:48 31-12-2009 | Исправлено: G787, 21:12 29-07-2018
deusex33

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BlackVetal
Выставил все объекты local - все равно не запускается на др. компе (WIN7 - 'приложение будет закрыто" )
http://img33.imageshack.us/img33/5210/16760860.jpg
Видимо придется ставить DEVExpress на компы...

Всего записей: 3 | Зарегистр. 18-02-2009 | Отправлено: 12:44 14-04-2011
fortezza

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть cxGrid и колонка с Properties := EditButton
Как в событии OnClick Button-а этой колонки обратиться к колонке?
 

Код:
 
procedure ...cxGridColumnPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  ?
end;
 

 
 
 
 
 
Добавлено:
простите. уже нашла.

Всего записей: 98 | Зарегистр. 20-10-2009 | Отправлено: 13:29 14-04-2011
deusex33

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Блин, сейчас мне сказали что надо делать установочные дистрибутивы, надо тогда как-то без установки DEVExpress'а обойтись ...
исходник VS2008 C#
http://rghost.ru/5196573

Всего записей: 3 | Зарегистр. 18-02-2009 | Отправлено: 13:39 15-04-2011
deusex3

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот сейчас  скомпилил прогу VC# 2010 + DXperience где используется только TrackBarControl, так же не запускается на другом компе.
Если в этой проге использовать стандартный TrackBar - то запускается.
DXperience -2010.2.6+Patch
 
Еще заметил что ссылки  в Обозревателе решений в случае компиляции как TRackbar'а стандартного, так и DXperience"го присутствуют только на DevExpress.Data .Utils  и .XtraEditors

Всего записей: 20 | Зарегистр. 08-11-2006 | Отправлено: 10:15 16-04-2011 | Исправлено: deusex3, 10:25 16-04-2011
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
deusex3
открыл твой проект (VS2010? другой уже нет ) ... при компиляции все баблиотеки копируются. значит все верно. Проблема скорее всего в установщике (в пректе установщика).
Сейчас мы делаем публикацию на сервер, но было дело что делали через обычный установщик ставили свои программы. Так вот на сколько помню, мы делали так - сначала складывали все библиотеки и exe-ники в общую папку (автоматом копировалось post-скрипт), дальше в проекте установщика добавляли все что нужно (часть руками), добавляли локализацию руками и делали инсталер. Исталер запускался у клиента и все работало нормально.

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 08:09 18-04-2011
fortezza

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте,  
использую cxGrid, в свойствах колонки Properties = EditButton
Хочу сделать так чтобы при изменении значения в ячейке происходило следующие:
1. Если удаляется хотя бы 1 символ - удалять все.
2. Если добавляется, возвращать предыдущее значение.
 
Как я понимаю, это нужно делать в свойстве OnEditValueChanged (или OnChanged), но как получить старое и новое значение в момент изменения? в обработчик передается только Sender.
Делаю так:
 

Код:
 
procedure TVetBaseForm.cxGridClmnPropEdtValChngd(Sender: TObject);
var cl : TcxGridDBColumn;
begin
  cl := TcxGridDBColumn((((Sender as TControl).Parent as TcxGridSite)
    .GridView as TcxCustomGridTableView).Controller.FocusedItem);
 
  showmessage(VarToStr(cl.EditValue) + '  ' + VarToStr(cl.FocusedCellViewInfo.DisplayValue) + '   ' +
    VarToStr(cl.FocusedCellViewInfo.Value));
end;
 

 
но все значения одинаковые..

Всего записей: 98 | Зарегистр. 20-10-2009 | Отправлено: 09:13 18-04-2011
dimm78

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

Цитата:
Как я понимаю, это нужно делать в свойстве OnEditValueChanged (или OnChanged), но как получить старое и новое значение в момент изменения? в обработчик передается только Sender.  

 
Попробуй для этого событие OnValidate. В тот момент когда оно происходит в DisplayValue новое значение, а в EditValue еще старое значение

Всего записей: 162 | Зарегистр. 07-12-2005 | Отправлено: 10:06 18-04-2011
fortezza

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

Цитата:
Попробуй для этого событие OnValidate. В тот момент когда оно происходит в DisplayValue новое значение, а в EditValue еще старое значение

оно происходит, только когда я выхожу из режима "изменения", а не в момент изменения.
но там ситуациа аналогична..

Всего записей: 98 | Зарегистр. 20-10-2009 | Отправлено: 10:18 18-04-2011
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
fortezza
может подробнее опишите, что вы хотите сделать (а то похоже на танцы с бубном)? Есть к примеру еще такое событие CellValueChannging для C# (смею предположить на Delphi onEditValueChanging).

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 12:53 18-04-2011
fortezza

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

Цитата:
может подробнее опишите, что вы хотите сделать (а то похоже на танцы с бубном)? Есть к примеру еще такое событие CellValueChannging для C# (смею предположить на Delphi onEditValueChanging).

Да - выше я дала пример именно с этим событием.  
Конкретно, я реализую лукап поле, но вместо списка появляется окно-диалог, после выбора записи в этом окне в ячеку передается соотв. значение. Это все работает, но если пользователь попытается ввести в ячейке значение руками (не вызывая окна по кнопке EditButton) - у него должна быть возможность только стереть его полностью, изменять - нельзя.
 
Для этого мне нужны старое и новое значения. Если длинна увеличилась - возвращаю старое значение, если уменьшилось - стираю полностью.

Всего записей: 98 | Зарегистр. 20-10-2009 | Отправлено: 13:14 18-04-2011
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
fortezza
Ну вопервых, ты использовал onEditValueChanged (работает ПОСЛЕ ввода изменний), я тебе предложил onEditValueChanging (ВОВРЕМЯ редактирования).
Во-вторых, я бы сделал вообще эту ячейку нередактируемой - если нужно ввести какие данные, изменить или удалить - через диалог (который ты уже реализовал).

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 13:45 18-04-2011
marser

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

Цитата:
Конкретно, я реализую лукап поле, но вместо списка появляется окно-диалог, после выбора записи в этом окне в ячеку передается соотв. значение. Это все работает, но если пользователь попытается ввести в ячейке значение руками (не вызывая окна по кнопке EditButton) - у него должна быть возможность только стереть его полностью, изменять - нельзя.
 
Ну так и сделайте это поле лукапным, например DBLookupComboBox. В обработчике события OnInitPopup напишите вызов окна диалога и Abort. Если не устраивает кнопка со стрелкой, то и это поправимо.  
 
Добавлено:
fortezza
Или используйте Properties как ButtonEdit и сделайте Properties.ViewStyle := vsHideCursor. Вариантов куча и без всяких onEditValueChanged

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 14:07 18-04-2011 | Исправлено: marser, 14:15 18-04-2011
fortezza

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ок. спасибо.
 
вообщем, я попробовала на всех подходящих событиях. их там всего 3
onChange
onEditValueChanged
onValidate
я думала, может неправильно обращаюсь к значениям..
 
Можно конечно и заблокировать.. но вот удаление не очень реализовывать в диалоге - диалог это окно с таблицой без каких либо кнопок.. На крайний случай добавлю ещё одну кнопку EditButton в самой ячейке для удаления..
 
 
 
Добавлено:

Цитата:
 Ну так и сделайте это поле лукапным, например DBLookupComboBox. В обработчике события OnInitPopup напишите вызов окна диалога и Abort. Если не устраивает кнопка со стрелкой, то и это поправимо.  
 
 
DBLookupComboBox -не вариант. у него намного меньше возможностей, чем у моего диалог-окна
 

Цитата:
 Или используйте Properties как ButtonEdit и сделайте Properties.ViewStyle := vsHideCursor. Вариантов куча и без всяких onEditValueChanged

 
Вопрос не в кнопке, кнопка для ButtonEdit меня вполне устраивает...
 
ок. спасибо.  
 
если у кого-нибудь будут идеи по поводу получения старого и нового значения напишите.

Всего записей: 98 | Зарегистр. 20-10-2009 | Отправлено: 14:37 18-04-2011
bukerman1975

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
продолжаю переводить проект со старых девок (3.2.2) на новые.
 
чето я смотрю, кроме как ради гридов, в общем-то переводить их и незачем. так как глюки постоянно выползают, при чем такие, которых раньше не было, разрабы этого не учли и нагородили новых багов.
 
ситуация такая. у меня есть форма, где есть контрол TcxCurrencyEdit. в него по долгу службы юзеру постоянно нужно копировать значение из экселевской ячейки. так вот пока оно было типа TdxCurrencyEdit, все было отлично, как только я заменил его на новый контрол, это значение в него напрочь отказывается копироваться.
 
при чем я понимаю почему. когда копируешь значение экселевской ячейки, то в конце строки зачем-то добавляется символ перевода строки. так вот в старых девках он просто игнорировался, а в новых считается, видимо, что там некорректные данные и просто не пропускает их. блин, ну вообще я не пойму логику разрабов, ну сделали вы новую фичу, так сделайте ее настраиваемой, чтобы я выбрал, хочу я так или нет...
 
я понимаю, что можно зайти по F2 в ячейку, скопировать текст или же набрать его руками, но хотелось бы решить проблему, чтобы все работало как раньше, никто ничего не посоветует?

Всего записей: 13 | Зарегистр. 05-04-2011 | Отправлено: 15:15 18-04-2011
marser

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

Цитата:
DBLookupComboBox -не вариант. у него намного меньше возможностей, чем у моего диалог-окна
 
Вы не поняли! Я предложил DBLookupComboBox только для показа лукапных значений. А выбор значений осуществляйте через свое диалог-окно. На OnInitPopup пишите вызов диалог-окна, потом Abort.  

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

А я кнопку и не трогую. Properties.ViewStyle := vsHideCursor - запрещает редактирование ячейки.

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 15:44 18-04-2011
fortezza

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

Цитата:
Вы не поняли! Я предложил DBLookupComboBox только для показа лукапных значений. А выбор значений осуществляйте через свое диалог-окно. На OnInitPopup пишите вызов диалог-окна, потом Abort.    
 А я кнопку и не трогую. Properties.ViewStyle := vsHideCursor - запрещает редактирование ячейки.

Поняла. Буду пробовать! Спасибо.

Всего записей: 98 | Зарегистр. 20-10-2009 | Отправлено: 15:52 18-04-2011
marser

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

Цитата:
ситуация такая. у меня есть форма, где есть контрол TcxCurrencyEdit. в него по долгу службы юзеру постоянно нужно копировать значение из экселевской ячейки. так вот пока оно было типа TdxCurrencyEdit, все было отлично, как только я заменил его на новый контрол, это значение в него напрочь отказывается копироваться

Цитата:
использую версию 6.24

http://www.devexpress.com/Support/Center/p/CB44772.aspx?

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 15:59 18-04-2011 | Исправлено: marser, 16:01 18-04-2011
bukerman1975

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

Цитата:
http://www.devexpress.com/Support/Center/p/CB44772.aspx?

 
спасибо! получается уже пофиксили, буду обновляться.  
 
Добавлено:
попытался поставить 6.53, все компилит, но почему-то в рантайме ругается:
https://lh3.googleusercontent.com/_lBlupcQvheI/TaxHyBYSniI/AAAAAAAAJdc/NEM1QJkk0aY/1.jpg
 
cxGridColumn что, свойство Index отменили? не пойму

Всего записей: 13 | Зарегистр. 05-04-2011 | Отправлено: 16:24 18-04-2011
V1s1ter



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bukerman1975
Часто подобные сообщения возникают когда property:
1) Удалили в самом объекте, но в файлах frm оно осталось. Лечение - удалить ненужные строки из frm.
2) Переименовали в самом объекте, но в файлах frm оно осталось старым. Лечение - переименовать в frm.
3) Сделали property составным property другого property в самом объекте, но в файлах frm оно осталось старым. Лечение - прописать для свойства его хозяина в frm. Пример било TEdit.Align, стало TEdit.Style.Align.

Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 20:58 18-04-2011 | Исправлено: V1s1ter, 20:59 18-04-2011
Bukerman

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V1s1ter
дело в том, что я обращаюсь в коде к этому свойству напрямую cxGridDBColumn.Index и компилятор не ругается, а компилит. то бишь проперти никуда не делось. но тем не менее в рантайме ругается.
мистика...
 
Добавлено:
извините, тупанул...
действительно, в файле формы прописано св-во Index, а в новой версии компонент, оно в самом классе есть но на форме его нет (не published). поудалял руками - все заработало.
 
спасибо большущее!

Всего записей: 5 | Зарегистр. 01-08-2007 | Отправлено: 00:31 19-04-2011 | Исправлено: Bukerman, 00:32 19-04-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru