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

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

Автор: linker_2009
Дата сообщения: 01.09.2011 12:19
sldaac
Есть такой вариант.
В TcxEditRepository добавляете CheсkBox
->Properties->Glyph выбираете bmp типа такого http://dl.dropbox.com/u/34040596/RadioButton_Image.bmp
->Properties->GlyphCount:=8;
вот вам чекбокс похожий на radiobutton
Картинку можно выдрать из любого скина в скинедиторе по вкусу, перевернуть и сохратить в BMP.
Автор: X11
Дата сообщения: 01.09.2011 12:39

Цитата:
пользователю трудно будет из всех строк искать, где как выбрана радиокнопка.

locate спасёт

Добавлено:

Цитата:
получается в каждой строке 2 варианта выбора

так оставь только 1
Автор: Dima335
Дата сообщения: 01.09.2011 12:44
На форме лежат cxLookUpComboBox, DataSource и ADOQuery (БД MS Access).
В ADOQuery я делаю запрос с такими полями: Наименование, Код_Товара, Код_типа_товара.
В cxLookUpComboBox в KeyFieldNames выбрано Код_Товара, в ListFielsNames Наименование.
Мне нужно в зависимости от того, какой Код_типа_товара у выбранного элемента выполнять некоторые действия.
Как теперь узнать что у такого-то товара такой-то код типа? Не второй же запрос делать.

Пробовал 2-ю колонку добавить в комбобоксе, но там нет св-ва visible.
Автор: X11
Дата сообщения: 01.09.2011 12:47

Цитата:
Не второй же запрос делать.

правильно, незачем, у тебя же это живёт в ADOQuery, вот в нём и узнавай.
Автор: Dima335
Дата сообщения: 01.09.2011 13:09
Методом Locate? Или Lookup?
Автор: Elena4uDo
Дата сообщения: 01.09.2011 13:20
бууу, Мальчики, ну помогите....
cxGrid:
Level1-cxGridTableView1
подуровень Level2-cxGridTableView2

обе таблицы заполнила, записи главной таблицы видны, раскрываю подуровень - там только заголовки столбцов......
надо мне привязать строчки подчиненной....но как не могу разобраться.....
Автор: X11
Дата сообщения: 01.09.2011 13:21
А справку почитать?
Да и при чём здесь DevExpress? Дальше Ваши вопросы из другой области.

Добавлено:
Lookup будет быстрее, т.к. ищет без перемещения по НД.

Добавлено:
Elena4uDo, просто в справке почитайте про master/detail в cxGrid`е.
Мы же не знаем, что именно Вы указали в настройках datacontroller`а.
Автор: sldaac
Дата сообщения: 01.09.2011 14:40
Elena4uDo
откройте демки по девкам, там есть все, можно глянуть и сравнить со своим проектом.
если демок нет, говорите куда, скину в почту именно то что вас интересует.
Как вариант можно демки с рфиц. сайта скачать
Автор: Elena4uDo
Дата сообщения: 01.09.2011 14:40
перечитала все вдоль и поперек.....как я поняла master/detail в datacontroller'e есть только для TcxGridDBTableView
но к базе я не привязываюсь и использую не DB таблицы.......
запись данных не из базы, а из класса.....

Добавлено:
SLDAAC, можно сюда - tishina_87@list.ru
Автор: andreybear
Дата сообщения: 06.09.2011 07:38
Добрый день! Подскажите, пожалуйста, как в событии onCustomDrawCell по условию выполнить и закраску ячейки произвольным цветом, и назначить картинку на ячейку так же по условию.

Код:
if AViewInfo.Item.Index > 0 then
begin
// Цвет ячейки
if FColors[recI,itemI] > 0 then
ACanvas.FillRect(AViewInfo.Bounds, GetColorByIndex(FColors[recI,itemI]));

if AViewInfo.Item.Index <> 0 then
if AnsiCompareStr(Trim(FNotes[recI,itemI]),'') <> 0 then
if AnsiCompareStr(Trim(FNotes[recI,itemI]), '-1') <> 0 then
begin
ACanvas.DrawImage(DM.ImgMisc16, AViewInfo.Bounds.Right - 16,
AViewInfo.Bounds.Top, 0, true);
end;
ACanvas.DrawTexT(AViewInfo.Text, AViewInfo.Bounds, cxAlignLeft, true);
ADone := true;
end;
end;
Автор: X11
Дата сообщения: 06.09.2011 08:40
а если убрать ADone := true; ?
Автор: mdid
Дата сообщения: 06.09.2011 09:00
народ подскажите плз..а то что то ступор..есть грид и группировка по 2 полям(к примеру город-фамилия)...как определить на какой группировке нажата пкм?так как нужно формировать popupmenu в зависимости где оно вызвано...oncellclick не реагирует на группировку а onmousedown не дает инфы..или я не нашел...пните плз в нужном направлении
Elena4uDo
что вам мешает заполнить данными из вашего класса такие штуки как dxMemData(dev),MemTableEh(ehlib) и использовать уровни?
и еще..не знаю для каких целей вам уровни(лень перечитывать прошлые страницы) но может обычная группировка поможет?
Автор: andreybear
Дата сообщения: 06.09.2011 09:08
X11
Убираю, тогда картинка не отображается!
Автор: mdid
Дата сообщения: 06.09.2011 09:36
andreybear
мм..я так понял вы красите фон если нет картинки?а может просто всунете в Imglist картинку 16х16 с этим фоном?
Автор: andreybear
Дата сообщения: 06.09.2011 09:46
mdid
Нет, я крашу фон по одному условию, а картинку вставляю по другому. При открытии формы все отображается как надо, пока не производишь как-либо манипуляций(например, вот сейчас сворачивание и разворачивание главного окна программы приводят к тому, что на таблице частично "отпечатывается" содержимое этой страницы форума.
До этого не было задачи отображать в закрашенной ячейке картинку, поэтому просто устанавливал цвет для кисти и ADone по умолчанию оставался в false. Но при таком раскладе картинка не отображается.
Автор: wasilissk
Дата сообщения: 06.09.2011 10:05

Цитата:
До этого не было задачи отображать в закрашенной ячейке картинку, поэтому просто устанавливал цвет для кисти и ADone по умолчанию оставался в false.

Попробуй

Код: Brush.Color := $LALALA;
FillRect(<ячейка>);
ADone := True;
Автор: andreybear
Дата сообщения: 06.09.2011 10:20
wasilissk

Цитата:
Brush.Color := $LALALA;
FillRect(<ячейка>);
ADone := True;

Не понял... FillRect - это чей метод? ACanvas.FillRect?
Если это так, то чем установка цвета кисти и последующий вызов FillRect отличается от:

Код:
procedure TcxCanvas.FillRect(const R: TRect; AColor: TColor);
begin
if AColor = clNone then Exit;
if AColor <> clDefault then
SetBrushColor(AColor);
Canvas.FillRect(R);
end;
Автор: wasilissk
Дата сообщения: 06.09.2011 10:46

Цитата:
ACanvas.FillRect?

Да.
ADone := True;
Ты откючаешь прорисовку ячейки вообще. Т.е. отрисовкой занимаешься полностью вручную: отрисовка фона, текста.
ADone := False;
Девки рисуют за тебя с твоими предустановками - например с твоим цветом кисти. Но в таком случае картинка твоя затрется их прорисовкой.
Соответственно, если ты хочешь выводить картинку, нужно ставить ADone := True; и прорисовывать все остальное (фон, текст) самостоятельно.
Автор: andreybear
Дата сообщения: 06.09.2011 10:56
Добавил строчку после else. Проблема была в том, что забыл отрисовывать фон тех ячеек, которые не попадали под условие FColors[recI,itemI] > 0.

Код:
// Цвет ячейки
if FColors[recI,itemI] > 0 then
ACanvas.FillRect(AViewInfo.Bounds, GetColorByIndex(FColors[recI,itemI]))
else
ACanvas.FillRect(AViewInfo.Bounds);
Автор: linker_2009
Дата сообщения: 06.09.2011 11:30
mdid
если в chm справке то ExpressQuantumGrid.chm->ExpressQuantumGrid->Base Concepts -> HitTest и Grid View Elements.
Автор: mdid
Дата сообщения: 06.09.2011 11:43
linker_2009
пасиб

может я не совсем понял зачем оно надо но..
на первой группировке жмакаю пкм и в onpopup получаю HitTest
ht.HitTestCode выдает 202 то бишь клик на хедере
и ht.ViewInfo.Text выдает заголовок первой колонки которая не входит в группировку...
мм..я все таки не понял как при помощи этой штуки получить клик по колонке которая входит в группировку
Автор: linker_2009
Дата сообщения: 09.09.2011 19:39
mdid
В результате что нужно получить? клик делаете в области данных по заголовкам сгруппированых записей?
Автор: SXP
Дата сообщения: 10.09.2011 17:13
При использовании DevExpress ToolBar'а замечено, что если окно программы неактивно, то неактивны и кнопки главного меню и панели инструментов, тогда как если использовать компоненты Toolbar2000 такого эффекта нет, кнопки активны у неактивного окна. Не знаю, может это сделано специально разработчиками, чтобы было легче отличить их компоненты в какой-либо программе, от других подобных компонентов, если допустим тот же Toolbar2000 со скином Office 2003 и ExpressBar dxBarManager со стилем Office 11 практически неотличимы. Может кто знает, как сделать чтобы кнопки были активными (подсвечивались при наведении курсора) у неактивного окна. Пишите, спасибо.
Автор: Dima335
Дата сообщения: 12.09.2011 23:04
Как вставить в грид запись, которая сохранена в переменной типа TcxCustomGridRecord? Подойдет ли этот тип?
Автор: tatbesidovska
Дата сообщения: 14.09.2011 14:12
Вопрос у меня такой. Есть свойство gridView multiselect, которое дает возможность выделять несколько строк в гриде удерживая например клавишу cntrl. А как можно реализовать такое же выделение строк (на C#), но при нажатии на CheckEdit в строке. Заранее спасибо.
Автор: eddoc
Дата сообщения: 15.09.2011 00:16
Комрады, просветите.

Переезжаю на юникод, заодно решил сменить стандартные компоненты на "девичьи". В ходе экспериментов выяснилось, что то ли TcxRichEdit не понимает юникода, то ли у меня лыжи не едут.

Если грузить cxRichEdit текстовый файл в ansi-кодировке, то все в порядке. А вот если загрузить туда юникод с BOM (я пробовал посредством LoadFromFile и LoadFromStream), то получаю китайские кракозябры (на скрине три эдита слева). То же самое проделываю с "родным" дельфевым RichEdit - нет проблем (на скрине они все справа).

Кто сталкивался и как победить?

Автор: linker_2009
Дата сообщения: 15.09.2011 00:21
eddoc
<YouTcxRichEdit>.Lines.LoadFromFile(AFileName,TEncoding.Unicode);
Почитайте в справке про TEncoding
Автор: eddoc
Дата сообщения: 15.09.2011 01:06
linker_2009

Цитата:
Почитайте в справке про TEncoding

Спасибо, читал

Вообще, если я правильно понял сей документ, то с BOM можно не указывать кодировку загружаемого документа. Что, собственно и подтверждается, поскольку я гружу текст в "стандартный" ричэдит посредством

Код: RchEdt2.Lines.LoadFromFile('UnicodTextBOM.txt');
Автор: linker_2009
Дата сообщения: 15.09.2011 01:55
eddoc
Ага точно, коcячат девки
[more=так вот получилось коректно загрузить]
var
List:tstringlist;
begin
List:=tstringlist.Create;
List.LoadFromFile('c:\test.txt',TEncoding.BigEndianUnicode);
cxRichEdit1.Lines.Assign(List);
List.Free;
end;
[/more]
Автор: eddoc
Дата сообщения: 15.09.2011 10:06
linker_2009
Bingo!!!

Стринглист ведет себя аналогично родному ричэдиту, с BOM можно даже кодировку не указывать - все корректно загружается.

Спасибо за помощь.

зы. а вот TcxMemo без косяков отображает любую кодировку при правильном подходе. Вывод: для текста - cxMemo, для форматированного текста - perfect pepsi cxRichEdit

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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