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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Prot_XT

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

Цитата:
Prot_XT В событии OnEditValueChanged - ставь фокус куда угодно... вроде так  

 
Да нет, не все так просто там... а хотелось бы разобраться. Вот, что там есть:
procedure TdxBarWinControl.KeyDown(var Key: Word; Shift: TShiftState);
 
  function IsWindowDistroyed: Boolean;
  begin
    Result := Handle = 0;
  end;
 
var
  ALinkSelf: TcxObjectLink;
begin
  if IsSysKeyDown(Key, Shift) then
    SysKeyDown(Key, Shift)
  else
  begin
    ALinkSelf := cxAddObjectLink(Self);
    try
      Item.KeyDown(Key, Shift);
      if (ALinkSelf.Ref = nil) or IsWindowDistroyed then
        Key := 0;
      case Key of
        VK_ESCAPE:
          begin
            DoEscape;
            Key := 0;
          end;
        VK_RETURN:
          begin
            DoEnter;
            Key := 0;
         end;
        VK_TAB:
          begin
            DoNavigation(Shift);
            Key := 0;
          end;
      end;
    finally
      cxRemoveObjectLink(ALinkSelf);
    end;
  end;
end;
 
Какой-то непонятный  DoEnter;

Всего записей: 163 | Зарегистр. 04-04-2003 | Отправлено: 06:37 31-05-2014
dred2k



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andryshok
Должно помочь OnGetEditProperties, по идее.
 
Добавлено:
Prot_XT
Через сообщение пробовал ?

Всего записей: 403 | Зарегистр. 15-02-2006 | Отправлено: 10:44 31-05-2014
Prot_XT

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Через сообщение - это костыль, даже если что-то будет получаться...
Все равно отработает этот DoEnter; Затем курсор улетит, потом его возвращать, причем залетит он в Edit в другое место, а не там где был... его опять что-ли запоминать и возвращать посимвольно, где он был?
Можно либо отключить в исходниках DoEnter - ну это слишком радикально - ампутация, либо все таки понять нахрена этот баян, и что с ним делать. Для чего-то же это сделали...

Всего записей: 163 | Зарегистр. 04-04-2003 | Отправлено: 11:43 31-05-2014
dred2k



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Prot_XT
90% кода запросто можно назвать "костылями".
Хозяин-барин.
 
Я тут на досуге попробовал, все вроде получилось... И без всяких событий.
http://www.sendspace.com/file/cayvjj
 
Добавлено:
Andryshok
Насчет подмены едитов в гриде на лету. Есть там одни грабли...
Нужно было мне поменять динамически, от данных, цвет и всякое в прогресс-баре, происходило это все в гриде. Поменял, менялось, но полетели массовые экцепшены. Оказалось, даже в хелпе прописано - динамически менять едиты в гриде можно, но способ такой:
1. создаешь репозиторий едитов
2. создаешь в нем нужные тебе едиты с нужными тебе свойствами
3. в событии получения эдита только присваиваешь уже созданный в репозитории едит
Работает, причем я в рамках одной хитрости динамически создавал в репозитории нужные едиты, потом их присваивал - все ровно.
 
Такие дела. Мож, пригодится...

Всего записей: 403 | Зарегистр. 15-02-2006 | Отправлено: 12:04 31-05-2014 | Исправлено: dred2k, 13:30 31-05-2014
G787



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Почему если в TcxGridBandedTablesView разместить одну колонку над другой то не меняется высота колонки и высота строки,
меняю в свойстве OptionsView.DataRowHeight и OptionsView.HeaderHeight результат без изменений.

Всего записей: 1035 | Зарегистр. 04-12-2005 | Отправлено: 18:31 31-05-2014 | Исправлено: G787, 18:45 31-05-2014
Prot_XT

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

Цитата:
Prot_XT
90% кода запросто можно назвать "костылями".
Хозяин-барин.
 
Я тут на досуге попробовал, все вроде получилось... И без всяких событий.
http://www.sendspace.com/file/cayvjj

 
Не спорю получилось... но только именно так как я и описывал...
Во первых попробуй набрать что-то в эдите... после отработки что получается? Правильно... весь текст выделяется, как будто ты только что перепрыгнул на новый контрол... это нужно опять обрабатывать.
Во вторых приглядись... видно, что на форме моргает Edit1 еще.
 
Кстати какая версия у тебя среды и DevExpress?
 
 
Добавлено:
Кстати в DoEnter вот что живет:
 
procedure TdxBarWinControl.DoEnter;
var
  AHandle: HWND;
  AParent: TCustomdxBarControl;
begin
  AHandle := Handle;
  AParent := Parent;
  if (ItemLink.RealItemLink <> nil) then
    ItemLink.RealItemLink.BringToTopInRecentList(True);
  StoreDisplayValue;
  if IsWindowVisible(AHandle) then
  begin
    AParent.SetKeySelectedItem(nil);
    KillBeep(AHandle);
    AParent.HideAll;
  end;
end;
 
 
Добавлено:
Что за ItemLink.RealItemLink такой?

Всего записей: 163 | Зарегистр. 04-04-2003 | Отправлено: 19:28 31-05-2014
dred2k



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Prot_XT
Убрать выделение - элементарно. Хотя бы через Properties.AutoSelect := False; К тому же есть соответствующий метод. Моргающий контрол чем мешает ? Ну убери у всего на форме, кроме риббона и его содержимого, возможность участия в переходах (TabStop := False)...
 
И при чем тут метод DoEnter?
 
Пример сделан на XE6, DevExperess 2013.2.5.
 
Добавлено:
G787
Насколько я помню, там есть минимум высоты, зависящий по ходу от размера шрифта... 18 по умолчанию. Может, указываешь меньше ?

Всего записей: 403 | Зарегистр. 15-02-2006 | Отправлено: 19:44 31-05-2014 | Исправлено: dred2k, 19:46 31-05-2014
Prot_XT

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
dred2k
Моргающий контрол просто говорит всего-лишь о том, что фокус прыгает тем не менее... все компоненты не поставишь TabStop := False.
 
А метод DoEnter, как раз и заставляет прыгать курсор - это исходники...
Я же выкладывал ранее:
 
procedure TdxBarWinControl.KeyDown(var Key: Word; Shift: TShiftState);  
.....
VK_RETURN:
          begin
            DoEnter;
            Key := 0;
         end;  
.....
 
Проще говорю мне DoEnter закоментировать в исходниках... просто хочу разобраться сообща чего оно делает то?

Всего записей: 163 | Зарегистр. 04-04-2003 | Отправлено: 19:56 31-05-2014
dred2k



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Prot_XT
 
DoEnter как раз передает фокус следующему элементу. Разве нет?
Насчет прыжка - поверь, он будет совершенно незаметен. Юзер будет сосредоточен на поиске, диалогов не будет. Вот попробуй, закомменти в моем примере показ сообщения - вообще не видно прыжка...
 
Насчет изменения девок. Признаться, при всей мощи кое-чего порой не хватает. Я как-то задавал вопрос - кто знает, как запретить рисование тени на кнопке тулбара, если тулбар в стиле Flat. Оказалось, никак. Я раскопал в исходниках это место, вшито намертво. Пришлось изменить модуль (dxBars.pas), положить рядом, включить в проект, поставить путь на сырцы бара и собирать проект уже с измененным модулем. В принципе, не особо и гиморно. Единственное - грамотно вносить изменения при смене версии, ну и за версией для сборки следить...

Всего записей: 403 | Зарегистр. 15-02-2006 | Отправлено: 20:14 31-05-2014
Prot_XT

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

Цитата:
DoEnter как раз передает фокус следующему элементу. Разве нет?

 
Ну да здесь это и происходит, я просто не пойму для чего это они сделали? Не для того же чтобы фокус менялся...возможно это как то штатно и отключается... Может быть в рантайме...

Всего записей: 163 | Зарегистр. 04-04-2003 | Отправлено: 00:02 01-06-2014
G787



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dred2k
наоборот больше, ставлю 21

Всего записей: 1035 | Зарегистр. 04-12-2005 | Отправлено: 00:58 01-06-2014
Prot_XT

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вообще кто знает... что такое ItemLink.RealItemLink ?

Всего записей: 163 | Зарегистр. 04-04-2003 | Отправлено: 09:54 01-06-2014
andreybear

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возникла проблема со стилями.
Использовал в проекте стили. Затем решил от них отказаться. Отключил стили в Modify Skin Options, удалил из uses ссылки на модули в каждом unit'e, однако размер exe не уменьшился. При компиляции появляются dcu файлы скинов.
При подключении/отключении скинов размер exe не меняется.
Среда Delphi xe3, Developer Express VCL 2012 vol 1.6, система Windows 7.
Кто-нибудь сталкивался с этой проблемой?
Как избавиться от скинов?

Всего записей: 132 | Зарегистр. 21-07-2011 | Отправлено: 19:02 01-06-2014
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andreybear Знчит гдето цепляешь скины... стопроцентно

Всего записей: 651 | Зарегистр. 03-06-2009 | Отправлено: 21:40 01-06-2014
dred2k



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andreybear
Было такое. Ищи модуль - где-то остались "заветные" юзес.

Всего записей: 403 | Зарегистр. 15-02-2006 | Отправлено: 22:36 01-06-2014
andreybear

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

Цитата:
Знчит гдето цепляешь скины... стопроцентно  


Цитата:
Было такое. Ищи модуль - где-то остались "заветные" юзес.

Я понимаю, что где-то должны цепляться скины...
Открываю все модули, смотрю uses - нигде нет.
Запускаю поиск по модулям, например, скин Caramel - не находит.
Кидаю на главную форму TdxSkinController, пытаюсь выбрать скин - список пуст. Набираю с клавиатуры "Caramel", устанавливаю NativeStyle=False и UseSkins=True. Запускаю проект - скин Caramel применяется ко всем окнам проекта и компонентам на них.
Открываю TotalCommander, запускаю поиск по слово Caramel, находит в exe и в одном dcu файле. Смотрю внимательно, dcu оказывается от модуля, который я удалил из проекта пару месяцев назад, но он остался в папке с проектом. Открываю код модуля и вижу, что в uses прописаны скины. Удалил, перекомпилировал, размер exe изменился до ожидаемого.
Жаль, что до этого потратил кучу времени - надо было сразу поискать TotalCommander'ом.
Andryshok
dred2k
Спасибо за правильное направление!

Всего записей: 132 | Зарегистр. 21-07-2011 | Отправлено: 08:00 02-06-2014
dred2k



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andreybear
Рад, что получилось!
Небольшое дополнение: удобнее искать по подстроке "Skin", присутствует во всех именах причастных файлов.
 
Добавлено:
G787

Цитата:
наоборот больше, ставлю 21

 
Редакторы не по умолчанию в колонках используешь (комбо там, или еще чего)? У них тоже бывают высоты....

Всего записей: 403 | Зарегистр. 15-02-2006 | Отправлено: 08:48 02-06-2014 | Исправлено: dred2k, 08:54 02-06-2014
G787



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dred2k
Нет не использую.
 
Если колонки располагаются в ряд то всё нормально и высота меняется, но если расположить одну колонку под другой то они магически сокращаются до 18.  
 
Это 100% их касяк.
 
Как отправить баг репорт Девам ?

Всего записей: 1035 | Зарегистр. 04-12-2005 | Отправлено: 11:27 02-06-2014
G787



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если присоединить к гриду ImageList то начинает работать RowHeight. а header нет

Всего записей: 1035 | Зарегистр. 04-12-2005 | Отправлено: 00:19 03-06-2014
dred2k



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
G787
 
У девов форум есть, изучал ? Может это все очень военная хитрость.  
Кстати, а попробуй без добавления имадж-листа гриду явно установить всем колонкам редактор, ну типа Text для начала. Может получиться с высотой...

Всего записей: 403 | Зарегистр. 15-02-2006 | Отправлено: 07:26 03-06-2014 | Исправлено: dred2k, 07:28 03-06-2014
Открыть новую тему     Написать ответ в эту тему

Страницы: 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