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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну так закоментируй EditValue := InternalEditValue;
и тогда у тебя будет  
EditValue со старым значением, а InternalEditValue с новым
 
не пойму в чем проблема
 
Добавлено:

Цитата:
X11
 
Цитата:
Есть TcxExtLookupCombobox. В нём выпадает cxGrid из репозитория с двумя колонками. Но выпадающий список узкий, а колонки широкие. Как заставить выпавшее окно быть шире и как запомнить/восстанавливать ширину выпавшего окна?
 
У cxExtLookupCombobox есть свойство PopupWindow(потомок TCustomForm), и есть события Properties.OnInitPopup и Properties.OnCloseUp

 
вот код

Код:
procedure TfmArendaAdd.elcbMediatorsPropertiesInitPopup(Sender: TObject);
begin
  elcbMediators.PopupWindow.Width := ArendaRepositoryMediatorsMEDIATOR_NAME.Width + ArendaRepositoryMediatorsTYPE_NAME.Width + 10;
end;

 
при выпадании окна оно всё равно узкое, а каждое поле по 120 пикселей
 
в событии OnPopup тоже размер не меняется.
 
А разве OnCloseUp происходит при открытии?
 
Добавлено:
Попробую это "How to programmatically resize a popup window of TcxPopupEdit when it is opened" http://www.devexpress.com/Support/Center/p/K18438.aspx

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 17:04 06-07-2011
linker_2009



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
 <YoucxExtLookupComboBox>.Properties.DropDownWidth:=<neededwidth>; не то ?

Всего записей: 143 | Зарегистр. 14-09-2009 | Отправлено: 17:22 06-07-2011 | Исправлено: linker_2009, 17:23 06-07-2011
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот так получилось:
 

Код:
 
implementation
 
uses ....;
 
{$R *.dfm}
 
type
  TcxCustomEditPopupWindowAccess = class(TcxCustomEditPopupWindow);
 
....
 
procedure TfmArendaAdd.elcbMediatorsPropertiesInitPopup(Sender: TObject);
var
 APopupEdit: TcxPopupEditPopupWindow;
begin
  APopupEdit := TcxPopupEditPopupWindow(TcxExtLookupComboBox(Sender).PopupWindow);//приводим всплывающее окно к типу TcxPopupEditPopupWindow из TcxCustomPopupEditPopupWindow
 
  TcxCustomEditPopupWindowAccess(APopupEdit).ResizePopupWindow(APopupEdit.Left,
    APopupEdit.Top,
    ArendaRepositoryMediatorsMEDIATOR_NAME.Width + ArendaRepositoryMediatorsTYPE_NAME.Width + 50,
    APopupEdit.Height);
 
end;
 

 
Добавлено:

Цитата:
<YoucxExtLookupComboBox>.Properties.DropDownWidth:=<neededwidth>; не то ?

спасибо, так проще
 
оказалось, что на
<YoucxExtLookupComboBox>.Properties.DropDown.... есть ещё несколько свойств и методов

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 17:32 06-07-2011
linker_2009



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

Цитата:
<YoucxExtLookupComboBox>.Properties.DropDown.... есть ещё несколько свойств и методов

Да, но не все работет. Например, если DropDownSizeable:= true и у вьюхи поставлена автоширина колонок, то вьюха у меня не выпадает.

Всего записей: 143 | Зарегистр. 14-09-2009 | Отправлено: 17:39 06-07-2011
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот мои свойства:
   
 
в коде вообще ничего не прописывал, хватило установить DropDownAutoSize в True

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 17:53 06-07-2011
unikum



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В риббоне ставлю несколько dxBarSpinEdit один под другим. Но поскольку у них свойство Caption разное они начинают плясать лесенкой. Свойство width влияет только на ширину самого поля редактирования и подгонять для каждого свое значение неправильно.
Кто нить знает как их выровнять по ширине?

Всего записей: 106 | Зарегистр. 23-07-2006 | Отправлено: 20:42 06-07-2011
linker_2009



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unikum
Попробуйте у всех поставить Aling:=iaClient;

Всего записей: 143 | Зарегистр. 14-09-2009 | Отправлено: 21:09 06-07-2011
fortezza

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

 
X11,проблема в том, что я вывожу значения до присвоения
 
 
 
Добавлено:

Цитата:
Ну так закоментируй EditValue := InternalEditValue;  
 и тогда у тебя будет  
 EditValue со старым значением, а InternalEditValue с новым  
   
 не пойму в чем проблема

 
X11,проблема в том, что не зависимо от того, какой из этих двух блоков кода я буду выполнять, значение main.StatusBar1.Panels[0].Text не должно менятся, но оно меняется
 

Код:
procedure TVetBaseForm.cxColBEPropChange(Sender: TObject);  
 var col : TcxGridDBColumn;  
     tv : TcxGridDBTableView;  
 begin  
   
   tv := TcxGridDBTableView(TcxGridSite(TControl(Sender).Parent).GridView);  
   if (tv.Controller.FocusedRow is TcxGridFilterRow) then Abort;  
   col := TcxGridDBColumn(tv.Controller.FocusedColumn);  
   
   if (col.Properties is TcxCustomButtonEditProperties) then  
     with TcxCustomTextEdit(tv.Controller.EditingController.Edit) do  
       begin  
             main.StatusBar1.Panels[0].Text := ' EditValue := ' + VarToStr(EditValue) +  
              ' EditingValue := ' + VarToStr(EditingValue) + ' InternalEditValue := ' + VarToStr(InternalEditValue) +              ' EditingText := ' + EditingText;  
         EditValue := InternalEditValue;  
         SelectAll;  
       end;  
 end;  

 

Код:
procedure TVetBaseForm.cxColBEPropChange(Sender: TObject);  
 var col : TcxGridDBColumn;  
     tv : TcxGridDBTableView;  
 begin  
   
   tv := TcxGridDBTableView(TcxGridSite(TControl(Sender).Parent).GridView);  
   if (tv.Controller.FocusedRow is TcxGridFilterRow) then Abort;  
   col := TcxGridDBColumn(tv.Controller.FocusedColumn);  
   
   if (col.Properties is TcxCustomButtonEditProperties) then  
     with TcxCustomTextEdit(tv.Controller.EditingController.Edit) do  
       begin  
             main.StatusBar1.Panels[0].Text := ' EditValue := ' + VarToStr(EditValue) +  
              ' EditingValue := ' + VarToStr(EditingValue) + ' InternalEditValue := ' + VarToStr(InternalEditValue) +              ' EditingText := ' + EditingText;  
 
       end;  
 end;
   

 
в первом случае все одинаково старые, во втором EditValue - новое.
Почему так происходит, если код в плоть до вывода значений ни чем не отличается?
 
 
Добавлено:
аа.. кажется я знаю в чем проблема
 
EditValue := InternalEditValue;  
 
повторно вызывает событие cxColBEPropChange.. может можно сделать так чтобы этого не происходило?

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



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

Цитата:
Добавлено:
аа.. кажется я знаю в чем проблема
 
EditValue := InternalEditValue;  
 
повторно вызывает событие cxColBEPropChange.. может можно сделать так чтобы этого не происходило?

 
на время присвоения, т.е. перед
EditValue := InternalEditValue;  
 
установи событие грида в nil, а потом верни обратно

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 09:48 07-07-2011
unikum



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2 linker_2009
 
Алилуя! Спасибо добпый человек. Что-то вообще не подумал бо не сильно логично

Всего записей: 106 | Зарегистр. 23-07-2006 | Отправлено: 15:08 07-07-2011
androidx55

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ нужна ваша помощь в осуществлении поиска в cxDBTreeList. Написал следующее поиск производится только до первого совпадения например в cxDBTreeList у меня есть такие названия Налог на зп , Налог НДС, Налог на ввоз и т.д. Своим поиском я попадаю  в первую ноду Налог на зп и дальше поиск не осушествляется, как реализовать так, чтоб после нахождения первой записи по нажатию на Enter или другую клавишу находились и другие ноды и курсор перемещался на нее. Заранее благодарен за помощь  
 

Код:
procedure TFmStRash.SearchEditKeyPress(Sender: TObject; var Key: Char);  
 var  
  Node: TcxTreeListNode;  
  NodeLast: TcxTreeListNode;  
  begin  
   
  Node := ClassTree.FindNodeByText(SearchEdit.Text, NameColumn , nil, False, True);  
  if Node <> nil then  
   begin  
    Node.Expanded := True;  
    Node.Focused := True;  
    NodeLast:=Node ;  
   if Key = #13 then  
    begin  
      Node := ClassTree.FindNodeByText(SearchEdit.Text, NameColumn , NodeLast, False, True);  
      Node.Expanded := True;  
      Node.Focused := True;  
     end;  
   end;  
   
 end;

Всего записей: 3 | Зарегистр. 07-07-2011 | Отправлено: 17:28 07-07-2011
linker_2009



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

Код:
 
procedure TFmStRash.SearchEditKeyPress(Sender: TObject; var Key: Char);  
 begin  
   ClassTree.OptionsBehavior.IncSearch := True;
   ClassTree.OptionsBehavior.IncSearchItem := NameColumn ;
   ClassTree.OptionsBehavior.ExpandOnIncSearch := True;
   ClassTree.SearchingText := SearchEdit.Text;
   ClassTree.FindNext(True);    
 end;

Всего записей: 143 | Зарегистр. 14-09-2009 | Отправлено: 19:55 07-07-2011 | Исправлено: linker_2009, 19:57 07-07-2011
mdid

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
народ а помогите решить проблему...
есть dbview надо сформировать отчет путем простого выбора элементов..создал колонку без заданного fieldname и типом checkbox..но не реагирует на изменения...мультиселект не вариант ибо меня затопчут  за такую реализацию...надо именно чекбоксом...в запросе добавить колонку тоже не вышло...то есть добавить вышло а внести изменения нет...единственный вариант(что мне оч не хочется) ввести в таблицу поле типа bit и там выделять...
посему вопрос можно ли как то методами девок решить сию задачу...проще говоря как в dbgrid хранить поле не из запроса
 
Обновил
мм...и хотя начальство дало добро на мультиселект...на будущее хотелось бы знать может грид такие или нет?

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 11:41 12-07-2011 | Исправлено: mdid, 11:53 12-07-2011
vladman

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

Цитата:
народ а помогите решить проблему...  

Посмотрите здесь

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 11:06 13-07-2011
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-нибудь пробовал Locked View Image  в cxGrid? Не могу понять, как это реализовать?

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 16:47 13-07-2011
mdid

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladman
пасиб...но в текущем гриде не помогло..мож какие то настройки мешают..ну да лана...в любом случае пасиб взял на заметку
 
тут родилась еще одна проблема..есть грид и 2 вьюхи...активными становятся по очереди в процессе выбора усером...так вот вылезла проблема при которой не понятно почему на одной из вьюх пропадают фильтрации по колонками..то есть при заполненном гриде при нажатии на фильтр по колонке имеются доступные значения только "Все"  "Выбор" "Пустые" и "не пустые" и все..думал косяки какие то..удалил вьюху в которой не показывался фильтр...пересоздал все..так теперь зараза на другой вьюхе пропал фильтр..что за приведения? кто то встречал такое?

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 18:11 13-07-2011
golkanavt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть среди присутствующих спецы по девам в версии ASP.NET?

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 19:36 13-07-2011
mdid

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
отвечу на свой вопрос..при установленной галке gridmode пропадают фильтры

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 09:14 14-07-2011
X11



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

Цитата:
отвечу на свой вопрос..при установленной галке gridmode пропадают фильтры

Советую прочитать про gridmode и зачем он нужен
 
Добавлено:
Установил Dev 2011.1.3
 
И теперь компилятор ругается на CheckStates. Говорит, что незадекларированный идентификатор.
 

Код:
function GetComboChecks(cxCheckComboBoxProperties: TcxCheckComboBoxProperties; sDelim: string = ','): string;
Var
  i: Integer;
begin
  with cxCheckComboBoxProperties do
    begin
      items.BeginUpdate;
      try
        for I := 0 to items.Count - 1 do
          if CheckStates[i] = cbsChecked then
            result := IntToStr(items[i].Tag) + sDelim + result;
 
        if result <> '' then //получаем 101,12,1024,
            Delete(result, Length(result), 1);//удаляем последнюю запятую
 
      finally
        items.EndUpdate;
      end;//try
    end;//with
//возвращаем список из выбранных ID через запятую: 101,12,1024
end;
 

 
До этого была версия 56.

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 10:02 14-07-2011
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Решил проблему:
 
Переделал с использованием CalculateCheckStates
 
 

Код:
function GetComboChecks(cxCheckComboBoxProperties: TcxCheckComboBoxProperties; vValues: Variant; sDelim: string = ','): string;
Var
  i: Integer;
  ACheckStates: TcxCheckStates;
begin
  with cxCheckComboBoxProperties do
    begin
      items.BeginUpdate;
      try
 
 
//рассчитываем, что выбрал пользователь
        CalculateCheckStates(vValues, items, EditValueFormat, ACheckStates);
 
        for I := 0 to items.Count - 1 do
          if ACheckStates[i] = cbsChecked then
            result := IntToStr(items[i].Tag) + sDelim + result;
 
        if result <> '' then //получаем 101,12,1024,
            Delete(result, Length(result), 1);//удаляем последнюю запятую
 
      finally
        items.EndUpdate;
      end;//try
    end;//with
//возвращаем список из выбранных ID через запятую: 101,12,1024
end;


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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 14:23 14-07-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