Подскажите, пожайлуста, как в cxGrid в колонках с цифровыми значениями значения 0 выводить, как пустые (null). Можно, конечно в датасете это отследить, но мне нужно, чтобы в датасете 0 были.
» Использование DevExpress (часть 3)
vavavol, у столбцов можно создать событие OnGetDataText. В него поступает выводимый текст, который вы можете проанализировать и заменить на свой.
Еще есть событие OnGetDisplayText.
Еще есть событие OnGetDisplayText.
Приветстую
Есть cxGrid. уровень с подуровнем. У каждого уровня свой view, организовано Мастер-Детайл. Как определить - найти в каком View находиться фокус, или выделена строка. Когда на мастер view нет проблем, а вот когда курсор на детайл view, выделена строка - никак. Детайл view раскрыт.
_http://img98.imageshack.us/img98/485/999kx.jpg
Есть cxGrid. уровень с подуровнем. У каждого уровня свой view, организовано Мастер-Детайл. Как определить - найти в каком View находиться фокус, или выделена строка. Когда на мастер view нет проблем, а вот когда курсор на детайл view, выделена строка - никак. Детайл view раскрыт.
_http://img98.imageshack.us/img98/485/999kx.jpg
Цитата:
sldaac
Помоему и cxGrid есть свойство ActiveView. К сожалению сейчас под рукой нет Делфей поэтому точнее сказать не могу...
Цитата:
Помоему и cxGrid есть свойство ActiveView. К сожалению сейчас под рукой нет Делфей поэтому точнее сказать не могу...
Это не то, в этот момент активны оба View, вернее активен мастер, и развернув "+" получаем детайл.
sldaac
Цитата:
Используйте свойство FocusedView вашего cxGrid.
Также стоит обратить внимание на раздел справки *Pattern and Clone Views*.
ms-help://borland.bds5/ExpressQuantumGrid6.BDS5/ExpressQuantumGrid6/IDH_Fundamentals_PatternCloneViews.htm
Цитата:
Как определить - найти в каком View находиться фокус, или выделена строка.
Используйте свойство FocusedView вашего cxGrid.
Также стоит обратить внимание на раздел справки *Pattern and Clone Views*.
ms-help://borland.bds5/ExpressQuantumGrid6.BDS5/ExpressQuantumGrid6/IDH_Fundamentals_PatternCloneViews.htm
Цитата:
Используйте свойство FocusedView вашего cxGrid.
Это не решает проблему, если и указывае, то что фокус на мастер View, хотя на самом деле курсор находится на детайл строке.
Это я все читал, пишу уже когда все испробавано
sldaac
Цитата:
Попробуйте
procedure <YourForm>.<YourcxButtonTest>Click(Sender: TObject);
begin
ShowMessage(<YourGrid>.FocusedView.PatternGridView.Name);
end;
Цитата:
Это не решает проблему... Это я все читал
Попробуйте
procedure <YourForm>.<YourcxButtonTest>Click(Sender: TObject);
begin
ShowMessage(<YourGrid>.FocusedView.PatternGridView.Name);
end;
Цитата:
ShowMessage(<YourGrid>.FocusedView.PatternGridView.Name);
Вот когда фокус на записи детайл, Name=''
На мастер view все нормально, может это глюк версии, у меня х43
sldaac
Цитата:
Странно. Тогда давайте пример с вашим мастер-дитэйл, посмотрим почему это не работает.
ЗЫ. А может вы уровни и вью создаете динамически, и явно им не указываете имя?
Так как не было AV, значит объект FocusedView.PatternGridView существует. Посмотрите отладчиков его свойства.
Цитата:
Вот когда фокус на записи детайл, Name=''
Странно. Тогда давайте пример с вашим мастер-дитэйл, посмотрим почему это не работает.
ЗЫ. А может вы уровни и вью создаете динамически, и явно им не указываете имя?
Так как не было AV, значит объект FocusedView.PatternGridView существует. Посмотрите отладчиков его свойства.
Последняя версия компонент.
При попытке создания из библиотека простую форму, на которой брошен Ribbon - все падает. Если то же самое делать из exe - все работает. Я поковырялся по сорцам, вот тут, в библиотеке SkinCount равен 0
procedure TdxCustomRibbon.InitColorScheme;
var
I: Integer;
begin
for I := 0 to SkinManager.SkinCount - 1 do
if SkinManager[I] is TdxCustomRibbonSkin then
begin
ColorSchemeName := SkinManager[I].Name;
break;
end;
end;
Буду рыть дальше, но может проблема известная и есть простое решение?
Уткнулся вот сюда:
procedure TdxUnitsLoader.AddUnit(const AInitializeProc, AFinalizeProc: Pointer);
var
AProc: TdxProc;
begin
if AInitializeProc <> nil then
begin
AProc := AInitializeProc;
if not IsDLL then
begin
FGDIInitialized := True;
AProc;
end
else
InitializeList.Add(AInitializeProc);
end;
if AFinalizeProc <> nil then
FinalizeList.Add(AFinalizeProc);
end;
Похоже, что из библиотеки GDI не инициализируется. Что делать, как обойти?
При попытке создания из библиотека простую форму, на которой брошен Ribbon - все падает. Если то же самое делать из exe - все работает. Я поковырялся по сорцам, вот тут, в библиотеке SkinCount равен 0
procedure TdxCustomRibbon.InitColorScheme;
var
I: Integer;
begin
for I := 0 to SkinManager.SkinCount - 1 do
if SkinManager[I] is TdxCustomRibbonSkin then
begin
ColorSchemeName := SkinManager[I].Name;
break;
end;
end;
Буду рыть дальше, но может проблема известная и есть простое решение?
Уткнулся вот сюда:
procedure TdxUnitsLoader.AddUnit(const AInitializeProc, AFinalizeProc: Pointer);
var
AProc: TdxProc;
begin
if AInitializeProc <> nil then
begin
AProc := AInitializeProc;
if not IsDLL then
begin
FGDIInitialized := True;
AProc;
end
else
InitializeList.Add(AInitializeProc);
end;
if AFinalizeProc <> nil then
FinalizeList.Add(AFinalizeProc);
end;
Похоже, что из библиотеки GDI не инициализируется. Что делать, как обойти?
Energot
Цитата:
Раз GDI+ не инициализируется - значит нужно инициализировать. Попробуйте так:
Код:
<YourDllUnit>.pas
uses
dxGDIPlusAPI;
.....
.....
.....
initialization
dxInitializeGDIPlus;
finalization
dxFinalizeGDIPlus;
Цитата:
Похоже, что из библиотеки GDI не инициализируется. Что делать, как обойти?
Раз GDI+ не инициализируется - значит нужно инициализировать. Попробуйте так:
Код:
<YourDllUnit>.pas
uses
dxGDIPlusAPI;
.....
.....
.....
initialization
dxInitializeGDIPlus;
finalization
dxFinalizeGDIPlus;
Hi
А я если помещаю CxBotton на Cxpanel , то в RUN-TIME половина у кнопок обрезается ((
А я если помещаю CxBotton на Cxpanel , то в RUN-TIME половина у кнопок обрезается ((
JohnSilver182
Цитата:
Что это? Нет таких компонентов у DevExpress
Может CxBotton это cxButton? Но что такое Cxpanel - тяжело догадаться.
Цитата:
CxBotton на Cxpanel
Что это? Нет таких компонентов у DevExpress
Может CxBotton это cxButton? Но что такое Cxpanel - тяжело догадаться.
ОЙ , на cxGroupBox
JohnSilver182
Давайте пример (приложение, скриншот) что и как у вас обрезается, разберемся.
Давайте пример (приложение, скриншот) что и как у вас обрезается, разберемся.
Вот
есть версия что это невидымый Caption гадит
есть версия что это невидымый Caption гадит
vladman
Спасибо, помогло!
Спасибо, помогло!
JohnSilver182
Цитата:
А это что такое? Одни ребусы . Какой скин используете, шрифт, размер шрифта? Если увеличить высоту GroupBox, как отрисуются кнопки. В общем, давайте исходники этой формы или сделайте похожую новую, чтобы была возможность воспроизвести проблему.
Добавлено:
Energot
Цитата:
Не за что, обращайтесь.
Цитата:
есть версия что это невидымый Caption гадит
А это что такое? Одни ребусы . Какой скин используете, шрифт, размер шрифта? Если увеличить высоту GroupBox, как отрисуются кнопки. В общем, давайте исходники этой формы или сделайте похожую новую, чтобы была возможность воспроизвести проблему.
Добавлено:
Energot
Цитата:
Спасибо, помогло!
Не за что, обращайтесь.
vladman
В общем, проблему не решил. В finalization оставлять dxFinalizeGDIPlus - нельзя, если запустить два экземпляра библиотеки - все упадет (и падает).
В базовый класс добавил статический счетчик эксземпляров класса. При создании первого - инициализирую GDI+, при закрытии последнего - финализирую. Однако при вызове dxFinalizeGDIPlus после закрытия первого же экземпляра библиотеки, от риббона прилетает какое то оконное сообщение и усе падает. (На TCustomForm.SetVisible в юните Forms). Ниже код деструктора моей библиотеки.
destructor TInfoJournal.Destroy;
begin
if JournalFrm <> nil then
JournalFrm.Free; // форма с риббоном
Dec(UnitsCount);
if(UnitsCount=0) then
dxFinalizeGDIPlus;
inherited;
end;
В общем, проблему не решил. В finalization оставлять dxFinalizeGDIPlus - нельзя, если запустить два экземпляра библиотеки - все упадет (и падает).
В базовый класс добавил статический счетчик эксземпляров класса. При создании первого - инициализирую GDI+, при закрытии последнего - финализирую. Однако при вызове dxFinalizeGDIPlus после закрытия первого же экземпляра библиотеки, от риббона прилетает какое то оконное сообщение и усе падает. (На TCustomForm.SetVisible в юните Forms). Ниже код деструктора моей библиотеки.
destructor TInfoJournal.Destroy;
begin
if JournalFrm <> nil then
JournalFrm.Free; // форма с риббоном
Dec(UnitsCount);
if(UnitsCount=0) then
dxFinalizeGDIPlus;
inherited;
end;
Цитата:
А это что такое? Одни ребусы . Какой скин используете, шрифт, размер шрифта? Если увеличить высоту GroupBox, как отрисуются кнопки. В общем, давайте исходники этой формы или сделайте похожую новую, чтобы была возможность воспроизвести проблему.
Хмм . Сделал PanelStyle.Activ:=true и все стало ок !!
Столкнулся с глюком, в Delphi 7 использую модуль определения pr тиц http://rouse.drkb.ru/files/fwpagerank.zip при добавлении в проект dxDBEdit1 функция HttpAddRequestHeaders в модуле перестает работать и вываливает ошибку 6 (ERROR_INVALID_HANDLE) из-за чего такое может быть?
Причем такая же функция работает вне модуля в основной программе и все нормально.
Добавлено:
Подскажите еще пожалуйста, если cxGrid не связан с БД как добавлять значения в ячейки?
Причем такая же функция работает вне модуля в основной программе и все нормально.
Добавлено:
Подскажите еще пожалуйста, если cxGrid не связан с БД как добавлять значения в ячейки?
gyani
Цитата:
Читать в Help и смотреть в Demo про ubound mode. Или воспользоваться ExpressMemData (или аналогами) для имитации таблицы БД в ОЗУ.
Цитата:
Подскажите еще пожалуйста, если cxGrid не связан с БД как добавлять значения в ячейки?
Читать в Help и смотреть в Demo про ubound mode. Или воспользоваться ExpressMemData (или аналогами) для имитации таблицы БД в ОЗУ.
вечер добрый, всезнающий алл
Использую TcxButtonEdit от DevExpress
cxButtonEdit.properties.Buttons
добавил еще одну кнопку TcxEditButtons.
хочу чтобы по ее клику, выпадал TcxLookupComboBox со списком FixedList
В cxButtonEdit.properties.LookupItems список я заполнил 4рьмя итемами.
но как их отразить в ниспадающем списке? и как сделать чтобы список выпадал?
паралельно во второй кнопке cxButtonEdit необходимо обработать другое событие, вызова модального окна.
окно я уже беру на себя, пусть хотя showmessage вываливается, смысл в разных событиях... не соображу что-то
люди, помогите пожалуйста
Использую TcxButtonEdit от DevExpress
cxButtonEdit.properties.Buttons
добавил еще одну кнопку TcxEditButtons.
хочу чтобы по ее клику, выпадал TcxLookupComboBox со списком FixedList
В cxButtonEdit.properties.LookupItems список я заполнил 4рьмя итемами.
но как их отразить в ниспадающем списке? и как сделать чтобы список выпадал?
паралельно во второй кнопке cxButtonEdit необходимо обработать другое событие, вызова модального окна.
окно я уже беру на себя, пусть хотя showmessage вываливается, смысл в разных событиях... не соображу что-то
люди, помогите пожалуйста
SHKoder
Цитата:
на закладке Event. Properties OnButtonClick
Обрабатываеш какая кнопка нажата, по твоему скрину Index=1 открывай форму
Цитата:
паралельно во второй кнопке cxButtonEdit необходимо обработать другое событие, вызова модального окна.
окно я уже беру на себя, пусть хотя showmessage вываливается, смысл в разных событиях... не соображу что-то
люди, помогите пожалуйста
на закладке Event. Properties OnButtonClick
Обрабатываеш какая кнопка нажата, по твоему скрину Index=1 открывай форму
Сделал русификацию DevExpress стандартным методом:
Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("ru");
+ dll-ки(с русификацией) положил к exe-шнику в папку "ru".
Контролы находящиеся в главной форме показывают русифицированные выражения.
Проблема возникает, когда активирую динамические сборки:
System.Activator.CreateInstance(...) и добавляю эти формы на главную, как Child.
В них не выводится текст. Причем не выводится вообще никакой! Возможно при таком вызове теряется локализация!?! Может посоветуете что нибудь?
Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("ru");
+ dll-ки(с русификацией) положил к exe-шнику в папку "ru".
Контролы находящиеся в главной форме показывают русифицированные выражения.
Проблема возникает, когда активирую динамические сборки:
System.Activator.CreateInstance(...) и добавляю эти формы на главную, как Child.
В них не выводится текст. Причем не выводится вообще никакой! Возможно при таком вызове теряется локализация!?! Может посоветуете что нибудь?
SHKoder
Цитата:
Используй не TcxButtonEdit, а TcxComboBox или TcxLookupComboBox, предварительно добавив им дополнительную кнопку.
Цитата:
Использую TcxButtonEdit от DevExpress
cxButtonEdit.properties.Buttons
добавил еще одну кнопку TcxEditButtons.
хочу чтобы по ее клику, выпадал TcxLookupComboBox со списком FixedList
Используй не TcxButtonEdit, а TcxComboBox или TcxLookupComboBox, предварительно добавив им дополнительную кнопку.
Код: procedure TForm1.cxMRUEdit1PropertiesButtonClick(Sender: TObject);
begin
showmessage('button pressed')
end;
object cxMRUEdit1: TcxMRUEdit
Left = 200
Top = 176
Properties.LookupItems.Strings = (
'db1 '
'db2'
'db3'
'db4')
Properties.OnButtonClick = cxMRUEdit1PropertiesButtonClick
TabOrder = 4
Text = 'cxMRUEdit1'
Width = 121
end
Вот такой квэщен: имеем TdxMemData, в который с помощью LoadFromDataset закачиваем данные через датасет (ТADODataset) из таблицы в БД MS SQL Server 2000. Поля типа tinyint и datetime в MS SQL Server при переносе в MemData (соответствующий тип поля smallint, integer, data) принимают значения Null. Приходится после процедуры переноса набора записей выполнять операции присваивания вида: MemDataFieldName.asVariant := ADODataset.FieldByName('FieldName').AsVariant.
Кто сталкивался с подобным, есть ли иные пути решения?
Кто сталкивался с подобным, есть ли иные пути решения?
Energot
Цитата:
Чтобы не засорять тему выяснением подробностей реализации вашей библиотеки, давайте исходники, попробую разобраться в чем проблема.
Цитата:
В общем, проблему не решил.
Чтобы не засорять тему выяснением подробностей реализации вашей библиотеки, давайте исходники, попробую разобраться в чем проблема.
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
Предыдущая тема: Delphi: tcp клиент в потоке
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.