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

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

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
Столкнулся с такой проблемой
Есть EditMask следующего вида \d\d '\' .. '; '\d\d'\'.. тип маски emkRegExprEx по идее должно получаться к примеру строка 12256589 -> 12\25; 65\89, при тестовом вводе так и получается, а вот если получить данные из таблицы в cxDBMaskEdit то получается вместо 12256589 -> 12\
 
Уже не знаю что и делать, может маску задаю не верно?

Всего записей: 262 | Зарегистр. 03-07-2006 | Отправлено: 17:20 11-02-2010 | Исправлено: AvGSoft, 17:27 11-02-2010
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xMrSpider
Значения одинаковые, т.к. для грида есть только 1 главный уровень!
 
Чтобы пройтись по нижним уровням нужно сделать что-то типа:
for I := 0 to cxGrid1.Levels[0].Count - 1 do
    cxGrid1.Levels[0].Items[I] --- вот уровень
 
Можно проверять TcxCustomGridView.Focused (или TcxCustomGrid.FocusedView - зависит от задачи) для определения активного View.

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 09:15 12-02-2010
OwnerZ

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.  
 
У меня такой вопрос можно ли создав колонку где DataBinding FildName содежрит Idшники проставить в Properties этой колонки как CheckBox.
 
Собственно как изменять значения в CheckBox на True если ID не Null?
 
Такой способ приемлем?
 
Или если не подходит есть какая нибудь другая возможность коректно заменить ненужные для просмотра ID?
 
Спасибо.

Всего записей: 30 | Зарегистр. 20-10-2009 | Отправлено: 09:34 12-02-2010 | Исправлено: OwnerZ, 09:47 12-02-2010
AvGSoft

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ ну подскажите по  маске, в cxGrid'е для столбцов где нужна была маска и также не работала реализовал через GetDisplayText() и свой обработчик формата, а как быть с cxDBMaskEdit - подходящего св-ва не нашел.

Всего записей: 262 | Зарегистр. 03-07-2006 | Отправлено: 10:11 12-02-2010
OwnerZ

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Немного разобрался в CheckBox есть свойства DisplayChecked и DisplayUnchecked которые нужно указать как пример. Но у меня же там ID и если выбрать для сравнения значения NULL то как указать в DisplayChecked чтобы он отмечал все значения не равные null.  
not si null или <> Null неподходят.  
Есть ли универсальное значение не равно null? Для CxGrid. Для пустых значений это автоматом ставится (Null)
 
Извиняюсь если пишу путано.  
 
Добавлено:
Итак если не замарачиватся то можно воспользоваться BlobEdit он подставит в ненулевые значения картинку с текстом пустые значения будут как белый лист.  
 
То что нужно.

Всего записей: 30 | Зарегистр. 20-10-2009 | Отправлено: 11:18 12-02-2010
fortezza

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно сделать так, чтобы сгруппированные записи всегда раскрывались (были раскрыты)?

Всего записей: 98 | Зарегистр. 20-10-2009 | Отправлено: 16:06 12-02-2010
tanaseduard



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
После обновления данных вызывай метод
ViewData.Expand(True);

Всего записей: 518 | Зарегистр. 21-11-2009 | Отправлено: 17:15 12-02-2010
vladman

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

Цитата:
Столкнулся с такой проблемой Есть EditMask следующего вида..
при тестовом вводе так и получается, а вот если получить данные из таблицы в cxDBMaskEdit то получается вместо 12256589 -> 12\

В том то и дело, что MaskEdit необходим для ввода значений в нужном формате. При отображении сохраненных значений, они (значения) должны соответствовать формату, т.е. маске. Так как ваше значение 12256589 не соответствует маске, оно и отображается не полностью. Для решения вашей проблемы нужны некоторые уточнения. Если правильно понимаю у вас есть некое поле в БД заполненное значениями вида 12256589. Вы хотите их визуализировать как 12\25; 65\89. Также при редактировании или внесении новых значений в это поле вы хотите давать пользователю вводить значения в MaskEdit. Как вы хотите чтобы введенные значения сохранялись в БД? Так - 12256589, или так 12\25; 65\89?
 
Добавлено:
OwnerZ

Цитата:
Или если не подходит есть какая нибудь другая возможность коректно заменить ненужные для просмотра ID?

Может его лучше вообще не отображать в гриде.
Если вам обязательно давать пользователю информацию о заполненности поля с ID использую CheckBox, создайте вычисляемое поле значение которого будет 0 при ID = null и 1 при ID <> null, соответственно.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 12:34 13-02-2010 | Исправлено: vladman, 12:36 13-02-2010
GladeX



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имеется код на Delphi 2010 (за основу взят из справки-примера DevExpress)
//*******************************************
type
  TMyPainter = class(TcxSheetPainter)
  protected
    procedure DrawCells; override;
  end;
  TForm2 = class(TForm)
    cxSpreadSheet1: TcxSpreadSheet;
....
procedure TMyPainter.DrawCells;
...
      Canvas.Canvas.TextOut(ViewInfo.Bricks[i, j].DisplayRect.Left, ViewInfo.Bricks[i, j].DisplayRect.Top, '*');
.....
procedure TForm2.cxSpreadSheet1CustomPaint(Sender: TObject; var PainterClass: TcxSheetPainterClass);
begin
  PainterClass := TMyPainter;
end;
//*******************************************
Все работает на отлично, но тот же код но на Builder C++ 2010 вываливается в AccessVioletion:
//*******************************************
// --header---------------------------------------------------------------------
class TMyPainter : TcxSheetPainter {
protected:
    virtual void __fastcall DrawCells(void);
};
 
// ---------------------------------------------------------------------------
class TForm2 : public TForm {
__published: // IDE-managed Components
    TcxSpreadSheet *cxSpreadSheet1;
 
    void __fastcall cxSpreadSheet1CustomPaint(TObject *Sender, TcxSheetPainterClass &PainterClass);
 
// -- C++ ------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) {
    cxSpreadSheet1->PainterType = ptCustom;
}
// ---------------------------------------------------------------------------
void __fastcall TForm2::cxSpreadSheet1CustomPaint(TObject *Sender, TcxSheetPainterClass &PainterClass) {
    PainterClass = __classid(TMyPainter);
}
// ---------------------------------------------------------------------------
void __fastcall TMyPainter::DrawCells(void) {
    TRect ARect = ViewInfo.Bricks[1][1].DisplayRect; <<== Ошибка здесь.Структура ViewInfo не инициализирована
}
// ---------------------------------------------------------------------------
Опции и установки проектов установлены по умолчанию, похоже не инициализируется структура ViewInfo.. но почему в Дельфе все проходит успешно?  

Всего записей: 57 | Зарегистр. 07-08-2003 | Отправлено: 16:08 13-02-2010 | Исправлено: GladeX, 17:32 13-02-2010
AvGSoft

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

Цитата:
Как вы хотите чтобы введенные значения сохранялись в БД? Так - 12256589, или так 12\25; 65\89?

В БД должно сохраняться как 12256589, а на экране 12\25; 65\89.
Как уже говорил выше для cxGrid
Цитата:
реализовал через GetDisplayText() и свой обработчик формата
, а для визуализации через cxDBPopupEdit подходящего свойства не нашел. (может конечно плохо искал). Нашел только инфу, что нужно копать в направлении DataSet'a, а именно SetFieldValue() и GetFieldValue(), но как то коряво выходит

Всего записей: 262 | Зарегистр. 03-07-2006 | Отправлено: 18:48 13-02-2010
vladman

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

Цитата:
В БД должно сохраняться как 12256589, а на экране 12\25; 65\89.  

Попробуйте так
pas, dfm

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 11:54 14-02-2010
GladeX



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Неужели никто не сталкивался с такой проблемой в работе с компонентом TcxSheetPainter?? %)

Всего записей: 57 | Зарегистр. 07-08-2003 | Отправлено: 10:18 15-02-2010
AvGSoft

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladman
Работает нормально. Спасибо!

Всего записей: 262 | Зарегистр. 03-07-2006 | Отправлено: 14:53 15-02-2010
shum44

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возник вопросы по dll со скинами которая представлена в заголовке темы. Вообщем скачал я ее попробовал скомпилить представленные в ней демонстрационный пример...и результат ноль...при запуске ругается что не найден ресурс B32X32. в чем может быть проблема? проверял на delphi 2009, DEVEXPRESS .48. Будет ли обновляться бибилиотека и будет ли инструмент для создание dll?

Всего записей: 20 | Зарегистр. 01-06-2005 | Отправлено: 23:23 15-02-2010
Senpai07



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

Цитата:
проверял на delphi 2009, DEVEXPRESS .48

Были и у меня ошибки на D2009
Исправлял так
lpName: PAnsiChar;  
на  
lpName: PChar;

Всего записей: 295 | Зарегистр. 05-12-2005 | Отправлено: 11:41 16-02-2010
shum44

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Senpai07, а по поводу добавления новых скинов можешь что сказать?

Всего записей: 20 | Зарегистр. 01-06-2005 | Отправлено: 12:15 16-02-2010
Senpai07



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

Цитата:
по поводу добавления новых скинов можешь что сказать?

 
В версии для печати 3-ей части как-то видел Andrey128 писал
о некоем скрипте make_skins_dll.rar

Всего записей: 295 | Зарегистр. 05-12-2005 | Отправлено: 15:08 16-02-2010
shum44

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто скачал архив make_skins_dll.rar с предыдущей части...перевыложите его плиз...ссылка померла...

Всего записей: 20 | Зарегистр. 01-06-2005 | Отправлено: 18:21 16-02-2010
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос по dxMemData. Хочу выполнить шифрование одного из полей. Затем сохранить набор данных в файл.  
 

Код:
 
 
procedure TfmFtpUpdater.tUpdaterPasswordGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin
  Text := Decrypt(VarToStr(sender.Value), kd);
end;
 
procedure TfmFtpUpdater.tUpdaterPasswordSetText(Sender: TField;
  const Text: string);
begin
  sender.Value := Encrypt(text, ke);
end;
 

 
Сохраняю в текстовый файл

Код:
tUpdater.SaveToTextFile(ExtractFilePath(ParamStr(0)) +  sFileNameToSavedxMem);

 
Открываю файл. А значение поля, которое я шифровал, НЕ зашифровано. При чём когда загружаю файл, то вижу, что значение этого поля в гриде в нормальном незашифрованном виде.
Почему значение поля при сохранении в файл в незашифрованном виде? И как его сохранить зашифрованным?
 
Добавлено:
За то код

Код:
 
  with dbgUpdater.DataController do
    begin
      sPassword := Values[RecordId, dbgUpdaterPassword.Index];
 

записывает в переменную sPassword значение в зашифрованном виде!
 
Добавлено:
Вопрос по сохранению состояния формы. В частности по WindowState. Если окно свернуть и потом закрыть приложение, то после запуска приложения его нет на панели задач.
 
Баг?

Код:
 
procedure TfmFtpUpdater.PropertiesStore;
Var
  AStoreComponent: TcxPropertiesStoreComponent;
begin
  try
    cxPropertiesStore1.StorageName := ExtractFilePath(ParamStr(0)) + 'options.ini';
 
    cxPropertiesStore1.StorageType := stIniFile;
    AStoreComponent := TcxPropertiesStoreComponent(cxPropertiesStore1.Components.Add);
 
    AStoreComponent.Component := fmFtpUpdater;
    AStoreComponent.Properties.Add('top');
    AStoreComponent.Properties.Add('left');
    AStoreComponent.Properties.Add('height');
    AStoreComponent.Properties.Add('width');
    AStoreComponent.Properties.Add('WindowState');
 
    cxPropertiesStore1.StoreTo(false);
  finally
    FreeAndNil(AStoreComponent);
  end;
 
end;
 
procedure TfmFtpUpdater.PropertiesReStore;
Var
  AStoreComponent: TcxPropertiesStoreComponent;
begin
  try
    cxPropertiesStore1.StorageName := ExtractFilePath(ParamStr(0)) + 'options.ini';
 
    cxPropertiesStore1.StorageType := stIniFile;
    AStoreComponent := TcxPropertiesStoreComponent(cxPropertiesStore1.Components.Add);
 
    AStoreComponent.Component := fmFtpUpdater;
    AStoreComponent.Properties.Add('top');
    AStoreComponent.Properties.Add('left');
    AStoreComponent.Properties.Add('height');
    AStoreComponent.Properties.Add('width');
    AStoreComponent.Properties.Add('WindowState');
 
    cxPropertiesStore1.RestoreFrom;
  finally
    FreeAndNil(AStoreComponent);
  end;
 
end;
 

 
Win7. D2007. Dev48.

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 11:02 17-02-2010
jonikDk



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
у тебя поле не зашифрованное хранится в DataSet поэтому и сохраняется не зашифрованное

Всего записей: 1613 | Зарегистр. 01-03-2004 | Отправлено: 14:08 17-02-2010
Открыть новую тему     Написать ответ в эту тему

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