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

» Использование DevExpress 2

Автор: afiget
Дата сообщения: 21.01.2009 23:24
zuskatt
Фильтры используй. Там как раз можно выделять галочкой и даже строить более сложные условия отбора.
Автор: sam291074
Дата сообщения: 22.01.2009 07:48
Помогите, пожалуйста разобраться.
Builder2007, DevExpress (май 2008)

При компиляции кода для события OnMouseMove на VerticalGride


Код: TPoint P = ((TcxVerticalGrid*)Sender)->ClientToScreen(Point(X,Y));
Автор: zuskatt
Дата сообщения: 22.01.2009 10:03
afiget

Цитата:
Фильтры используй. Там как раз можно выделять галочкой и даже строить более сложные условия отбора.


Фильтры, это не совсем то, что мне нужно.
я не знаю, как обратиться к моему запросу через грид.
К примеру, у меня есть три уровня группировок в гриде, и все свернуты, кроме одного.
Т.е. на экране это выглядит так:
+ lev1_rec_1
+ lev1_rec_2
+ lev1_rec_3
+ lev1_rec_4
+ lev2_rec_4
lev3_rec_1
lev3_rec_2
+ lev1_rec_5
- lev1_rec_6
+ lev1_rec_7

я хочу кликнуть мышкой в гриде на запись "+ lev1_rec_2" и получить значение rec_2: только я не знаю как обратиться к гриду, чтоб это значение вsтащить
Автор: Falc0nMan4
Дата сообщения: 22.01.2009 12:23
Не всегда обновляю компоненты DevExpress с выходом новых релизов.
Последний раз обновлялся летом, и сейчас с выходом набора 41 тоже решил обновить. Для части проектов использую Дельфи 6 (ну так исторически сложилось). После установки нового релиза компонентов обнаружил, что изменились версии NavBar - на NavBar2, Scheduler - на 3, PivotGrid - на 2. И пропала поддержка этих компонент в Дельфи6.
Это действительно так? Новые версии уже не доступны для Дельфи6???

-----
Сам нашел ответ на свой вопрос. На сайте DevExpress действительно Дельфи6 не находится в списке поддерживаемых IDE для последних версий NavBar, ExpressScheduler, PivotGrid.
Автор: vcrank
Дата сообщения: 22.01.2009 15:19
Здравствуйте. Есть пара вопросов по этим компонентам
Вопрос 1
На форме имеется Memo1. В него загружены русские ресурсы для дев

Код: object cxLocalizer: TcxLocalizer
Active = False
FileName =
end
Автор: jicoff
Дата сообщения: 22.01.2009 16:36
zuskatt

После нажатия +, если 3 уровня группировки, появится запись второй группы типа TcxGridGroupRow, у которой свой + и т.д. Если нужно сразу открыть запись, надо вызвать метод Expand(true) для lev1_rec_2 после нажатия +.
Автор: xokc
Дата сообщения: 22.01.2009 20:32
vcrank

Цитата:
Создаю главное меню. В этом меню использую компоненты cxEditItem > CheckBox

А может просто использовать обычный cxButton с ButtonStyle = bsChecked?
Автор: vcrank
Дата сообщения: 23.01.2009 04:55

Цитата:

А может просто использовать обычный cxButton с ButtonStyle = bsChecked?

Ну да... это вариант =)
А тогда как можно сделать (через свойства кнопки) чтобы при выборе значения со всех остальных галка снималась?
Автор: f3ka
Дата сообщения: 23.01.2009 09:56
vcrank пропиши для всех cxButton GroupIndex одинаковый для всех и отличный от нуля...
Автор: infomSB
Дата сообщения: 23.01.2009 11:41

Цитата:
Код:
mStrm := TMemoryStream.Create();
memo1.Lines.SaveToStream(mStrm);
cxLocalizer.LoadFromStream(mStrm);
cxLocalizer.Active := True;
cxLocalizer.Locale := 1049;
cxLocalizer.Translate;
mStrm.Free;


Но язык на русский так и не меняется. Делаю через поток, чтобы на жёсткий диск ничего не писать

А не пробовали делать так

memo1.Lines.SaveToStream(mStrm);
mStrm.Position := 0;
cxLocalizer.LoadFromStream(mStrm);
Автор: f3ka
Дата сообщения: 23.01.2009 12:13
vcrank тут нашел маленький баг который присущ практически всем cxEditor'ам... даже если в пропертях стоит выравнивание по левому краю в рантайме все равно бывает проинициализировано с правым выравниванием...
решается установкой вручную (перевыбор) в дизайне проперти выравнивания слева... тогда должен исчезнуть глюк с кривым выравниванием checkbox'ов в меню...
Автор: vcrank
Дата сообщения: 23.01.2009 15:35

Цитата:
пропиши для всех cxButton GroupIndex одинаковый для всех и отличный от нуля...

Спасибо. Я так делал, но GroupIndex сбрасывался. Видимо из-за того, что другие элементы были в этом же подменю


Цитата:
memo1.Lines.SaveToStream(mStrm);
mStrm.Position := 0;
cxLocalizer.LoadFromStream(mStrm);

Вон оно что... Так работает. Спасибо


Цитата:
решается установкой вручную (перевыбор) в дизайне проперти выравнивания слева... тогда должен исчезнуть глюк с кривым выравниванием checkbox'ов в меню...

Выделил все эти кнопки. Полез в Properties > Aligment. Значение поставил в taLeftJustify

Изменений не заметил =(
Автор: Ziltoid
Дата сообщения: 23.01.2009 17:05
f3ka

Цитата:
vcrank тут нашел маленький баг который присущ практически всем cxEditor'ам... даже если в пропертях стоит выравнивание по левому краю в рантайме все равно бывает проинициализировано с правым выравниванием...
решается установкой вручную (перевыбор) в дизайне проперти выравнивания слева... тогда должен исчезнуть глюк с кривым выравниванием checkbox'ов в меню...


Прочитав пост, вспомнил еще один баг - когда CheckBox запихиваешь в закладку Ribbon, галка в нем тоже равняется по правому краю. Установка опции ручками ни к чему не приводит.
Кто-нибудь знает, как это лечится? Или ждать, когда у господ разработчиков DevExpress дойдут руки до этого..
Автор: f3ka
Дата сообщения: 23.01.2009 17:47
vcrank похоже что это косяк BarManager'a... Если с обычными cxEditor'ами такое прокатывает то в итемах BarManager'a это не канает...
Ziltoid в ихней Knowledge Base есть я нашел только один пост на эту тему (но он от 2007 года)... Там говорится что пока что типа это не делается... Но они взяли его на заметку...
Автор: vcrank
Дата сообщения: 23.01.2009 18:23
Ладно, сделал через bsStyle у обычных кнопок


А ещё можете объяснить по какому принципу работает cxPropertiesStore

Его просто кинуть на форум, указать куда сохранять и всё. Потом загружать настройки... Он сам сохраняет все параметры компонентов от dev express?

Интересует сохранит ли это:
Меню (где и на каком элементе стоит checkBox)
cxGrid (по каким столбцам идёт группировка)
Какой скин выбран...
Автор: X11
Дата сообщения: 26.01.2009 13:10
Начну из далека. Есть мышки у которых колесо не только нажимается вниз и вращается вперёд/назад, но также имеет ещё два кнопки - влево и вправо, т.е. наклон колеса влево/вправо. Это реализовано для прокрутки влево/вправо. Так вот. Браузеры реагируют, реалигует TDBGridEh. А TcxGrid не реагирует, не хочет выполнять прокрутку по горизонтали. Это нужно самому реализовывать? Девки майские 2008 года.
Автор: asvet
Дата сообщения: 26.01.2009 17:33
Доброго всем времени суток.

Вопрос: Как во всем приложении изменить (увеличить) шрифт, так чтобы и в дизайнере тоже было видно.
DevExpress.Utils.AppearanceObject.DefaultFont = new Font("Tahoma", 10);
перед Application.Run увеличивает шрифт в рантайме, но не в дизайнере.
Автор: xokc
Дата сообщения: 26.01.2009 18:59
X11
Как вариант - посмотреть при помощи Spy++, что там за события генерятся при отклонениях колеса и поискать на http://devexpress.com/Support/Center/KB/default.aspx код этого события. У меня вот в Firefox такая прокрутка не работает.
Автор: Sufferer
Дата сообщения: 26.01.2009 20:39
Вторично сталкиваюсь с проблемой в TcxVerticalGrid.
Добавляю в TcxVerticalGrid строку типа ComboBox и сколько ни бьюсь по событию EditPropertiesChange немогу получить текущее значение ни текста ни индекса. Подскажите куда копать?

Добавлено:
Есть в девках хороший компонент TdxFlowChart, но некоторой функциональности в нем явно нехватает. Например, авторазмещения элементов. Есть ли аналог TdxFlowChart, но с возможностью авторазмещения?
Автор: X11
Дата сообщения: 27.01.2009 10:14

Цитата:
У меня вот в Firefox такая прокрутка не работает.

Может от мыши зависит и, соответственно, дров?
Автор: infomSB
Дата сообщения: 27.01.2009 11:33

Цитата:
Вторично сталкиваюсь с проблемой в TcxVerticalGrid.
Добавляю в TcxVerticalGrid строку типа ComboBox и сколько ни бьюсь по событию EditPropertiesChange немогу получить текущее значение ни текста ни индекса. Подскажите куда копать?

TcxDBEditorRow(VGridRow).Properties.Value
Вы это ищете ?
Автор: SANiONE
Дата сообщения: 27.01.2009 19:58
Здравствуйте, в дизайнере отчётов отображается просмотр, на нём картинка с BMV, Ford,.. , а вот как эту картинку можно заменить на чтонибудь другое, ну чтоб пример показывало на основании моих данных или вообще чтонибудь левое, не делать жеж рекламу автомобильным гигантам в своей программе.
Автор: Czechoslovak
Дата сообщения: 28.01.2009 10:34
SANiONE
Отредактировать файл ресурсов dxPSImgs.res или код загрузки данных в TableView
Автор: SANiONE
Дата сообщения: 28.01.2009 13:06
Спасибо.
А можно ссылочку где можно подробнее прочитать про "код загрузки данных в TableView"?
Автор: X11
Дата сообщения: 28.01.2009 21:22
Как лучше в цикле очистить/обнулить значения всех строк компоненты cxVerticalGrid

само собой, что этот код:

Код:
for I := 0 to vgOptions.Rows.Count - 1 do begin
(vgOptions.Rows[i] as TcxEditorRow).Properties.Value := null;
end;//for
Автор: xokc
Дата сообщения: 28.01.2009 21:40

Цитата:
Неужели нужно проверять тип/класс каждой строки?

А как иначе? Ведь у TcxCategoryRow и TcxMultiEditorRowProperties нет Value.
Автор: sam291074
Дата сообщения: 28.01.2009 22:05
Подскажите как сохранить данные строки cxVerticalGrid, имеющую свойство BlobEdit, в файл.
Заранее спасибо.
Автор: Radio_Kat
Дата сообщения: 29.01.2009 03:12




вопрос про группировку записей в TcxGridDBTableView
уже обсуждался, но не получается сделать вставку записи корректно

Ситуация такая:
Есть таблица с полями: id, дата, цена, описание (для простоты таблица из базы Access)

таблица отображается в TcxGridDBTableView, сгрупированна по дате.

Добавление и редактировании записи происходит в другой форме (вызывается по кнопке)

Новая запись по умолчани заносится за текущее число.

Проблемма в следующем если перед тем как нажать кнопку "добавить"
активна была строка с другой датой, то группа записей за эту дату "развернется"

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

пример проекта (31 Кб):
http://rapidshare.com/files/190563410/simple_prime.rar.html

авишка как это "неправильно" работает тут (162 кб):
http://rapidshare.com/files/190567821/simple_prime.avi.html


Код:
unit u_main_form;

uses u_update_insert;

procedure Tf_main_form.b_refreshClick(Sender: TObject);
var j, c, ARecordIndex : Integer;
b : array of boolean;
a : array of string;
SavePlace: TBookmark;
begin
try

//-- запомнили последовательно разворачивания групп
c := cxGrid1DBTableView1.ViewData.RowCount - 1 ;
setLength(b, c + 1);
setLength(a, c + 1);
for j := 0 to c do
begin
b[j] := cxGrid1DBTableView1.ViewData.Records[j].Expanded;
a[j] := cxGrid1DBTableView1.ViewData.Records[j].Values[0];
end;

try
cxGrid1DBTableView1.BeginUpdate;
cxGrid1DBTableView1.DataController.BeginLocate;

//-- запомнили выбранную строку
SavePlace := ADOTable1.GetBookmark;

//-- обновили данные
ADOTable1.Close;
ADOTable1.Open;

//-- востановили выбранную строку
ADOTable1.GotoBookmark(SavePlace);

finally
cxGrid1DBTableView1.DataController.EndLocate;
cxGrid1DBTableView1.EndUpdate;
end;

//-- востановили последовательно разворачивания групп
for j:= 0 to length(a) - 1 do
with cxGrid1DBTableView1.DataController do
begin
ARecordIndex := FindRecordIndexByText(0, 1, a[j], False, False, True);
GetRowIndexByRecordIndex(ARecordIndex, b[j]);
end;

except

end
end;

procedure Tf_main_form.b_insertClick(Sender: TObject);
begin
ADOTable1.Insert;
f_update_insert.f_insert := 1;
f_update_insert.ShowModal;
b_refreshClick(b_refresh);
end;

procedure Tf_main_form.d_updateClick(Sender: TObject);
begin
f_update_insert.f_insert := 0;
f_update_insert.ShowModal;
b_refreshClick(b_refresh);
end;

procedure Tf_main_form.FormCreate(Sender: TObject);
begin
ADOTable1.Close;
ADOTable1.Open;
end;

procedure Tf_main_form.b_deleteClick(Sender: TObject);
begin
ADOTable1.Delete;
end;


unit u_update_insert;

uses u_main_form;


procedure Tf_update_insert.b_okClick(Sender: TObject);
begin
if f_main_form.ADOTable1.Modified then f_main_form.ADOTable1.post;
f_update_insert.close;
end;

procedure Tf_update_insert.FormCreate(Sender: TObject);
begin
f_insert := 0;
end;

procedure Tf_update_insert.FormShow(Sender: TObject);
begin
if ( f_insert = 1 ) then
begin
f_main_form.ADOTable1.FieldByName('description').AsString := '';
f_main_form.ADOTable1.FieldByName('load_date').AsDateTime := trunc(now());
f_main_form.ADOTable1.FieldByName('price').AsFloat := 0;
end;
end;

procedure Tf_update_insert.b_canselClick(Sender: TObject);
begin
if f_main_form.ADOTable1.Modified then f_main_form.ADOTable1.Cancel;
f_update_insert.close;
end;
Автор: infomSB
Дата сообщения: 29.01.2009 08:14
Radio_Kat
Вся проблема в том что грид тоже обрабатывает событие ADOTable.Insert . Может вам поможет делать вот это:
ADOTable.DisableControls;
ADOTable.Insert;
ваш код + Обновление
ADOTable.EnableControls;
Автор: Radio_Kat
Дата сообщения: 29.01.2009 08:37

Цитата:
Вся проблема в том что грид тоже обрабатывает событие ADOTable.Insert . Может вам поможет делать вот это:
ADOTable.DisableControls;
ADOTable.Insert;
ваш код + Обновление
ADOTable.EnableControls;

да, это решает проблемму

но появляется другая
компоненты вкладки Express DBEditor ( te_load_date: TcxDBDateEdit; te_price: TcxDBCalcEdit;), которые я использую на второй форме, тоже становятся не привязанны к ADOTable1
т.е вставлять новую запись придется используя компоненты Express Editor

может быть есть ещё какой то вариант?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182

Предыдущая тема: Язык программирования на русском языке


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