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

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

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

ShIvADeSt



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

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




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

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

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



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

Цитата:
на кой ляд там свойство ID

В TdxCustomTokenEdit нет свойства ID.

Всего записей: 880 | Зарегистр. 30-08-2001 | Отправлено: 08:56 13-10-2018
Sufferer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А вот в TdxTokenEditToken, из которых собственно и собирается все это счастье, имеется.  
ПС: Дошло до меня как реализовать то что мне надо. Код элемента это свойство Text, а вот его представление это DisplayText. Все встало на свои места, а то я никак не мог понять в каком виде собственно итог работы компонента получится. А получится он как текстовая строка кодов с разделителями.

Всего записей: 264 | Зарегистр. 21-07-2001 | Отправлено: 11:10 13-10-2018
ChSerg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в TdxTokenEditToken тоже нету никакого ID:
 
TdxTokenEditToken = class(TcxButtonGroupItem)
  strict private
    FGlyph: TdxSmartGlyph;
    FHint: string;
    FImageIndex: TcxImageIndex;
    FText: string;
 
    function GetDisplayText: string;
    procedure SetDisplayText(const Value: string);
    procedure SetGlyph(const Value: TdxSmartGlyph);
    procedure SetHint(const Value: string);
    procedure SetImageIndex(const Value: TcxImageIndex);
    procedure SetText(const Value: string);
  protected
    procedure Changed; virtual;
    function GetDisplayName: string; override;
    procedure GlyphChangeHandler(Sender: TObject); virtual;
  public
    constructor Create(Collection: TCollection); override;
    destructor Destroy; override;
    procedure Assign(Source: TPersistent); override;
  published
    property DisplayText: string read GetDisplayText write SetDisplayText;
    property Glyph: TdxSmartGlyph read FGlyph write SetGlyph;
    property Hint: string read FHint write SetHint;
    property ImageIndex: TcxImageIndex read FImageIndex write SetImageIndex default -1;
    property Text: string read FText write SetText;
    property Tag;
  end;
 
 

Всего записей: 880 | Зарегистр. 30-08-2001 | Отправлено: 14:24 13-10-2018
Sufferer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ID - видишь?  
Нет.  
А он есть.  
https://ru.files.fm/u/2rkgvwa8
 

Всего записей: 264 | Зарегистр. 21-07-2001 | Отправлено: 21:35 13-10-2018 | Исправлено: Sufferer, 21:35 13-10-2018
ChSerg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sufferer
Так этот ID унаследован от TCollectionItem, который находится в стандартной VCL и там же можно посмотреть его описание:
 
A unique, permanent index for the item.  
 
In most cases, ID is the value of the item's Index property when it was first added to the collection. But, unlike Index values, ID values are never changed or reassigned. If an item is removed from a collection, its ID not used again.  
 
An item's Index may change when other items are deleted from the collection or when items are rearranged. ID provides a unique identifier for each item that is unchanged for the life of the collection.  
 

Всего записей: 880 | Зарегистр. 30-08-2001 | Отправлено: 00:45 14-10-2018
Sufferer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Собственно мне уже он не нужен. Зато вот другая непонятка образовалась с этим TokenEditorom. А собственно как работать с такой вот итоговой строкой в БД? Она же содержит перечисление кодов через разделитель. Простейший запрос на получение всех записей, содержащих нужный код уже вызывает недоумение. Даже в гриде фильтр на колонку по такому полю не активируется.  

Всего записей: 264 | Зарегистр. 21-07-2001 | Отправлено: 21:18 14-10-2018
ChSerg



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

Цитата:
уже вызывает недоумение

Все очень просто. Запрашиваете так:
select * from tbl where rec_id in (id1,id2,id3,...) order by rec_id
id1,id2,id3,... - это и есть список кодов.

Всего записей: 880 | Зарегистр. 30-08-2001 | Отправлено: 00:15 15-10-2018
Sufferer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Э нет, в том то и засада, что коды хранятся в одном поле, просто как текстовая строка с разделителями например 1;2;3

Всего записей: 264 | Зарегистр. 21-07-2001 | Отправлено: 11:59 15-10-2018
ChSerg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sufferer
Я что-то непонятно написал?  
id1,id2,id3 - это и есть ваша строка кодов с разделителями (1;2;3), замените только разделитель на запятую.

Всего записей: 880 | Зарегистр. 30-08-2001 | Отправлено: 15:31 15-10-2018 | Исправлено: ChSerg, 15:32 15-10-2018
Sufferer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Или я чего-то не понимаю или одно из двух. SQL конструкция in (id1,id2,id3,...) предполагает в скобках набор ОТДЕЛЬНЫХ элементов, а у меня ОДИН элемент - строка. Нельзя выполнить запрос вида:

Код:
 
select * from Dictionary where ID in ('128,132,141,154,199,146,139')
 

А TokenEdit именно в таком формате работает с элементами.
Единственный вариант, который будет работать с такими данными это формировать динамически текст запроса, куда можно как строку внедрить такой элемент:
'select * from Dictionfry where ID in (' + '128,132,141,154,199,146,139' + ')';
Видимо вы об этом мне пытались сказать.  

Всего записей: 264 | Зарегистр. 21-07-2001 | Отправлено: 20:10 16-10-2018 | Исправлено: Sufferer, 20:11 16-10-2018
ChSerg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sufferer
Ну, конечно же! Именно об этом!!!
Можно использовать строковый параметр или макро (если используете FireDAC).

Всего записей: 880 | Зарегистр. 30-08-2001 | Отправлено: 22:40 16-10-2018 | Исправлено: ChSerg, 22:41 16-10-2018
safon777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста, в TdxNavBar можно как-то сделать чтобы Item по которому кликнули оставался выделенным каким-то образом ?
Первое что приходит в голову подменять стили в коде, но это геморройно. Неужели нет простого способа ?

Всего записей: 2 | Зарегистр. 21-06-2008 | Отправлено: 10:37 18-10-2018
Sufferer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну а как вы хотите, элемент получает фокус и получает соответствующий стиль. Теряет, тоже получает свой стиль. Одновременно два элемента в фокусе быть не могут - вот и получается, что для элемента в фокусе и без оного надо использовать одинаковые стили. Для уменьшения кода, можно сделать два набора стилей, один для навбара в фокусе, а второй без. Переключение наборов стилей по потере/получению фокуса в пару строк выходит.

Всего записей: 264 | Зарегистр. 21-07-2001 | Отправлено: 20:00 18-10-2018
ChSerg



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

Цитата:
оставался выделенным каким-то образом

Как-то так, наверное:
 
procedure TForm2.dxNavBar1OnCustomDrawLink(Sender: TObject; ACanvas: TCanvas;
  AViewInfo: TdxNavBarLinkViewInfo; var AHandled: Boolean);
begin
  if AViewInfo.Link.Selected then
  begin
    ACanvas.Brush.Color := clRed;
    ACanvas.FillRect(AViewInfo.Rect);
  end;
end;

Всего записей: 880 | Зарегистр. 30-08-2001 | Отправлено: 23:26 18-10-2018
Sufferer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если есть возможность, проверьте на более свежих девках фильтрацию в гриде по TokenEdit. У меня она для этого типа поля напрочь отсутствует.

Всего записей: 264 | Зарегистр. 21-07-2001 | Отправлено: 13:20 19-10-2018
Открыть новую тему     Написать ответ в эту тему

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

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

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru