Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Использование DevExpress (часть 4)

Автор: fitget
Дата сообщения: 25.07.2011 14:13
alex01

GridView2 - это и есть pattern, прототип с набором свойств для клонов. При нажатии на + создается клон с набором свойств из pattern'а.

У GridControl1 есть свойство FocusedView?
Автор: alex01
Дата сообщения: 25.07.2011 14:35
figet

У GridControl1 есть свойство FocusedViewChanged.
Автор: fitget
Дата сообщения: 25.07.2011 14:55
alex01

FocusedViewChanged - это событие, а не свойство. Все события, в которые приходит GridView - это реальный View (может быть мастером, может быть клоном-детейл), у которого есть данные. С ними и надо работать.
Автор: alex01
Дата сообщения: 25.07.2011 15:19
fitget огромное спасибо за ликбез!


Код:
Dim grv As GridView = GridControl1.FocusedView
Dim i As Integer = grv.FocusedRowHandle
grv.SetRowCellValue(i, "Cartridge", dr("Id").ToString)
Автор: StredaX
Дата сообщения: 27.07.2011 12:10
Следующая проблема.
Вечером выключил delphi (проект компилился, все в порядке).
Пришел на работу, включаю и на процедуру:

Код: procedure TcxCanvas.DrawTexT(const Text: string; R: TRect;
AAlignmentHorz: TAlignment; AAlignmentVert: TcxAlignmentVert;
AMultiLine, AShowEndEllipsis: Boolean)
Автор: fitget
Дата сообщения: 27.07.2011 13:20
StredaX

Надо было зачистить старую версию Dev: dcu, bpi, dcp; и в конечном счете bpl.
Автор: crazypiggy
Дата сообщения: 28.07.2011 14:19
Добрый день. Подскажите пожалуйста как на канву cxGrid вывести рисунок.
Хочу вывести при помощи TGIfImage на канву gifку

Код:
Gif := TGifImage.Create;
Gif.LoadFromFile('D:\loading (1).gif');
gif.ThreadPriority := tpIdle;
gif.Transparent:=true;
gif.Paint(cxGrid1.Canvas.Canvas, rect(60,60,108,108),[goAsync,goAnimate,goLoop,goLoopContinously,goDirectDraw,goDither,goAutoDither,goTransparent,goClearOnLoop])
Автор: mdid
Дата сообщения: 28.07.2011 15:31
crazypiggy
зачем изврат..у вьюхи есть возможность поставить картинку на фон

Подскажите плиз...такая беда...дет неделю назад с помощью установленной галки DataController.Filter.AutoDataSetFilter добился вывода на печать по фильтру...но сегодня проходя последний тест программы наткнулся на то что при установленной этой галке на печать выводится полный список...что я мог зацепить?

Автор: crazypiggy
Дата сообщения: 28.07.2011 15:55
mdid
Просто хочу анимированную картинку загрузки поставить, пока запрос выполняется
А в фон можно загрузить анимированную gif?
Автор: mdid
Дата сообщения: 28.07.2011 16:05
crazypiggy
там bmp и pcx..пока выполняется запрос вывалите усеру модальную форму с TImage и крутите там свою гифку до конца выполнения запроса ..это и красиво и полезно в связи с тем что усеры тыкают во все что тыкается

ПС
нашел ответ на свой вопрос..установка ключевого поля не дает возможность вывалить на печать отфильтрованное(
Автор: crazypiggy
Дата сообщения: 28.07.2011 17:24
mdid
У меня запрос выполняется в потоке. Программа MDI. Вот и хочется чтобы при переключении на форму было видно что запрос выполняется. Вы мне подсказали бы как добраться до канвы cxGrid а дальше я сам попробую разобраться
Автор: Cryogen2003
Дата сообщения: 28.07.2011 19:14
Добрый вечер, помогите плиз.

Есть cxGrid, в нем несколько Level и TableView.


И есть задача, нужно показать департамент (родитель), в чайлдах показать должности, и вторым table view пойдут управления. А у управления уже в чайлдах будут должности, а так же отделы, группы и у них уже должности и люди.

В dbgSubordinationDBTableViewCEB2, dbgSubordinationDBTableViewCEB3 и dbgSubordinationDBTableViewCEB4 прописаны MasterKeyFieldNames = id и DetailKeyFieldNames = parentid.

вроде по идее все должно работать, но работать не хочет как надо. Показывает только департаменты и должности в нем, если скрыть dbgSubordinationDBTableViewCEB2 (должности в департаментах), то будет показываться и департаменты (без должностей), и управления, и должности в управлении. Если же не скрывать должности в управлении, то почему-то связка не идет. Что я делаю не так?
Думал что к level1 привязал в виде чайлдов level2 и level3, а к level3 привязал в виде чайлда level 4 и все будет работать, а вот не получается что-то из-за level2 и все тут.

P.S.: по базе данных все проверил, все отлично вытаскивается и все должно работать.
Автор: mdid
Дата сообщения: 28.07.2011 19:24
crazypiggy
черт да зачем канва? если не хотите вываливать окно то у вьюхи есть класс BackgroundBitmaps с Background типа tbitmap....разложите свою гифку на кадры и с таймингом меняйте Background

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


еще обратите внимание на стили...там тоже можно задать фон битмапом

ПС
созрел еще вопрос...в общем мкнуло меня сделать поиск с подсветкой результата в гриде..все хорошо сделал... в CustomDrawCell получив нужные координаты заливки для ACanvas(то есть заливаю ну допустим 3/4 от ячейик) но фигня в том что получив TRect и как бы я его не менял заливается вся ячейка
для примера

Код:
rect:=ACanvas.Canvas.ClipRect;
rect.Left:=10;
rect.Right:=35;
rect.Top:=60;
ACanvas.Canvas.Brush.Color:=clYellow;
ACanvas.Canvas.FillRect(rect);
Автор: programolamer
Дата сообщения: 29.07.2011 15:54
помогите закруглить углы в cxGridCardView,(т е сделать "карточки" не прямоугольниками, а элипссами) , пробовал сделать overrride для

procedure FillRect(const R: TRect; AColor: TColor); overload; в unit cxGraphics; но что-то не получилось
Автор: Cryogen2003
Дата сообщения: 01.08.2011 11:51
Как узнать текущий RecordIndex в TableView в любом месте моего кода?! Что-то потерялся я в хэлпе.
Автор: X11
Дата сообщения: 01.08.2011 12:03
Datacontroller.SelectedRecordIndex
Datacontroller.FocusedRecordIndex
Автор: Cryogen2003
Дата сообщения: 02.08.2011 07:28
X11
В том то и дело, что я так делал. Но как добиться нормального получения значения на любом уровне tableview, связанных между собой через level.
Хотя было бы даже лучше, как добиться текущего значений по любому полю в любом tableview, которые связаны между собой level (ну чтоб нормально пробежаться по всем masterkey и detailkey), в хэлпе не нашел (((((
Автор: mdid
Дата сообщения: 02.08.2011 08:31
аа народ хелп..сталкнулся с такой херней
при установленной галке View.DataController.Filter.AutoDataSetFilter
прога выпадает с AV а в последствии происходит вылет из нее если в фильтре вьюхи выбрать
фильтр по пустым или не пустым значениям

ошибка Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом

как лечить?
Автор: X11
Дата сообщения: 02.08.2011 08:45
mdid
Может у тебя проблема в другом? Посмотри, какие есть события у грида, пройдись дебаггером. Возможно после фильтрации ты где-то обращаешься к записи грида, которое не существует.

Создай пустой проект, будет ли там ошибка?
Автор: mdid
Дата сообщения: 02.08.2011 08:54
X11
я тоже так думал...но потом просто на чистом проекте создал грид и фильтр начал фильтровать по пустым и не пустым нормально...но как только я поставил эту галку на чистом проекте(где был только грид адокверина и датасорс) сразу вылетела AV
Автор: Czechoslovak
Дата сообщения: 02.08.2011 10:22
mdid
Может значение не может быть Null?

Автор: mdid
Дата сообщения: 02.08.2011 11:07
Czechoslovak
что значит не может быть? почему тогда без галки работает?это или косяк дев либо я чего то не понимаю
Автор: Czechoslovak
Дата сообщения: 02.08.2011 14:24
mdid
Потому что AutoDataSetFilter := True устанавливает автоматом фильтр на реальный датасет, а поле по которому устанавливается фильтр на пример не может принимать значение Null
А работает у тебя при AutoDataSetFilter := False потому что реально на датасет фильтр не ставиться, а ставиться только на данные загруженные гридом, то есть если открыть этот же источник на пример в простом гриде то там будут видны все данне
Автор: mdid
Дата сообщения: 02.08.2011 15:04
Czechoslovak
стоп...поле стринги(varchar) в гриде оно тоже стринги....так что я не могу проверить его на null?иль как?как тогда это реализовать?

в общем херня в том что девы формируют проверку на пустое значение путем [field] is null а ado сие не понимает..но адо отлично ест запись вида [field] = null ...то есть как я понял надо пропарсить строку и сначала заменить is not на <> а потом is на =

В общем все чудно вышло
Автор: Czechoslovak
Дата сообщения: 02.08.2011 15:43
mdid

Да при чем тут девки? Во первых какая БД, во вторых посмотри допускают ли поля принимать пустое значение, то есть может поле не может быть нул . Попробуй просто без девок на датасете сделать фильтр, кстати датасет таблица или запрос?

Добавлено:
mdid
Вот только что на Акцессе попробовал выдается такая же ошибка, о чем я и говорил. У тебя поле которое не может принимать значение null
Автор: mdid
Дата сообщения: 02.08.2011 15:59
та ну драсте не может..я заменил InvNumber is null на InvNumber = null и все чудесно заработало...база ms2005
и девки тут ни при чем...я уже написал что ado не понимает is null
Автор: QETUORFV
Дата сообщения: 03.08.2011 09:30
Подскажите не найду ответа.
После открытия cxDBPivotGrid мне нужно выделить сразу первую ячейку, т.е. установить фокус на нем. А как это сделать не получается.
Автор: mdid
Дата сообщения: 03.08.2011 13:05
QETUORFV
может cxDBPivotGrid1.DataController.FocusSelectedRow()

только проверьте на количество записей в гриде
Автор: Czechoslovak
Дата сообщения: 03.08.2011 16:17
QETUORFV
DBPivotGrid.ViewData.Selection.FocusedCell := Point(0,0);
Автор: QETUORFV
Дата сообщения: 03.08.2011 16:30
неканает этот метод. Вылазит ошибка
"DataController not in Gridmode".
Просмотрел все демо примеры для Пивотгрида - нет ничего подобного. А выделить ячейку в этом гриде ой как нужно))

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.