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

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

Автор: MagistrAnatol
Дата сообщения: 24.01.2012 11:33
andreybear
да, так ведь если я руками клацаю кнопки все норм, а если перехватываю то проблемы
Автор: andreybear
Дата сообщения: 24.01.2012 11:54
MagistrAnatol

Цитата:
Может не совсем в тему но я не могу понять ето глюки грида или моя ошибка
если я руками нажимаю кнопку а потом на новой форме давлю отмена- все норм.
если делаю програмно получаю
First chance exception at $00D0D77C. Exception class $C0000005 with message 'access violation at 0x00d0d77c: read of address 0x00000000'. Process vdgo.exe (1044)

Из сказанного вами, понял, что вы создаете форму, на которой есть как минимум кнопка "отмена". Если вы кликаете мышкой по кнопке "отмена", то все идет как надо. Если вы пытаетесь из кода инициировать событие click какой-то кнопки на главной форме, то получаете ошибку. Если убрать кусок кода

Код: dm->tAboLich->Append();
dm->tAboLich->FBN("ABO_ID")->AsInteger=dm->tAbo->FBN("ABO_ID")->AsInteger;
dm->tAboLich->FBN("LICH_KOLVO")->AsInteger=1;
dm->tAboLich->FBN("OPER_DATA")->AsDateTime=Date();
Автор: salexn1
Дата сообщения: 24.01.2012 12:37
MagistrAnatol
а dm->tAboLich не nil часом?

Автор: andreybear
Дата сообщения: 25.01.2012 02:57
salexn1

Цитата:
if (frmNewAboLich->ShowModal()==mrOk)
{
dm->tAboLich->Post();
dm->tAboLich->FullRefresh();
}
else dm->tAboLich->Cancel();

Я так понял, что этот код отрабатывает.
Хотя, честно говоря, нет четкого представления, что отрабатывает, что нет и при каких условиях.
Автор: salexn1
Дата сообщения: 25.01.2012 12:36
вроде как автор и пишет, что ругается на
dm->tAboLich->Append();
и ниже..
раз access violation - значит nil или проблема с памятью
Автор: mdid
Дата сообщения: 25.01.2012 14:39
народ а просветите плиз по поводу док панелей
как сделать что бы она не закрывалась при потере фокуса? а то думаю усеры взбунтуются рано или поздно
Автор: sam291074
Дата сообщения: 25.01.2012 17:00
mdid
Странно, но у меня она и не закрывается при потере фокуса. В дизайн-тайме видно свойство AutoHide, но у меня оно постоянно в False и нельзя изменить.
Автор: andreybear
Дата сообщения: 26.01.2012 07:01
mdid
AutoHide = false
sam291074
Можно изменить и в runtime, и design time, что приведет к скрытию панели (это же свойство меняется, когда пользователь нажимает кнопку cbHide заголовка панели).
Автор: mdid
Дата сообщения: 26.01.2012 08:04
AutoHide = false
не вариант..пропадает кнопка с DockSiteи панель постоянно видима..то есть развернута на ширину DockSite
Автор: andreybear
Дата сообщения: 26.01.2012 09:21
mdid

Цитата:
не вариант..пропадает кнопка с DockSiteи панель постоянно видима

Какая кнопка? cbHide?
Сам использую TdxDockPanel, никаких проблем не возникает. Надо скрыть - нажал кнопку в заголовке. Если не надо, чтоб скрывалась - нажал на ту же кнопку и панель закрепилась.
А размер панели можно менять перетаскивая границу хоть при AutoHide = false, хоть при AutoHide = true.
Может я неправильно понял, что требуется? Или панель другая?
Автор: mdid
Дата сообщения: 26.01.2012 09:26
andreybear
черт..а это идея..пасиб...та про размер я в курсе
Автор: fortezza
Дата сообщения: 27.01.2012 09:12
добрый день, подскажите, как обработать щелчок по этому кусочку грида?



спасибо
Автор: andreybear
Дата сообщения: 27.01.2012 09:46
fortezza

Код: procedure TForm1.ViewMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if View.GetHitTest(X,Y).HitTestCode = htIndicatorHeader then
begin
// Ваши действия
end;
end;
Автор: fortezza
Дата сообщения: 27.01.2012 10:46
большое спасибо, повесила туда Ctrl+A


Код:
procedure ....cxGrdMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
AHitTest: TcxCustomGridHitTest;
begin
if not (Sender is TcxGridSite) then Exit;
AHitTest := TcxGridSite(Sender).ViewInfo.GetHitTest(X, Y);

case AHitTest.HitTestCode of
htIndicatorHeader:
begin
keybd_event(vk_control, 0, 0, 0);
keybd_event(ord('A'), 0, 0, 0);
keybd_event(ord('A'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(vk_control, 0, KEYEVENTF_KEYUP, 0);
end;
end;
end;
Автор: Raniw
Дата сообщения: 27.01.2012 19:07
Кто знает или может подсказать: какой метод или свойство XtraGrid отвечает за фильтрацию по индексу строки?
Автор: Dima335
Дата сообщения: 29.01.2012 18:48
Тоже вопрос по фильтрам, только нубский Как в таблице BandedTableView отловить событие изменения условий отбора строк? Какого-то события типа "OnFilterChanged" или "OnFilterConditionChanged" не нашел
Автор: korstin
Дата сообщения: 30.01.2012 07:38

Цитата:
Какого-то события типа "OnFilterChanged" или "OnFilterConditionChanged" не нашел


procedure TForm2.cxGrid1BandedTableView1DataControllerFilterChanged(Sender: TObject);
begin
end;
Автор: AndreyAgrh
Дата сообщения: 30.01.2012 14:52
Вопросик по cxGrid: при подключении поля DateTime из оракловой базы происходит ошибка Invalid Argument если попадается дата вида "01.01.000". Что можно с этим сделать?
Автор: tanaseduard
Дата сообщения: 30.01.2012 14:54
AndreyAgrh
А что это за дата такая?
поле Date?
Автор: AndreyAgrh
Дата сообщения: 30.01.2012 15:15
tanaseduard, да Date .. БД разрабатывалась еще под досом на 9 оракле.. откуда там такие поля я не могу сказать ..
Автор: tanaseduard
Дата сообщения: 30.01.2012 15:22
AndreyAgrh

Date именно в DDL таблице? Какая версия Oracle щас? Какие NLS прописанны в Default?
Попробойте использовать To_Date()->To_Char()
Автор: AndreyAgrh
Дата сообщения: 30.01.2012 15:33
tanaseduard:
nls: AMERICAN_AMERICA.CL8MSWIN1251
Oracle 9.2.0.4.0
DDL в таблице.

Спасибо, попробую через функции ..
Автор: tanaseduard
Дата сообщения: 30.01.2012 16:05
AndreyAgrh
Всеравно странно. Сделайте выборку через PL/SQL или аналогичный редактор первых 10 строк и сюда давайте. Интересно что покажет.
И какое значение у NLS_DATE_FORMAT?
Автор: wasilissk
Дата сообщения: 30.01.2012 18:59
AndreyAgrh
А что за компоненты доступа?
Автор: AndreyAgrh
Дата сообщения: 30.01.2012 20:10
tanaseduard, хорошо, завтра посмотрю и сделаю.
wasilissk, компоненты UniDac.
Автор: andreybear
Дата сообщения: 31.01.2012 03:52
Добрый день!
Подскажите, как можно определить порядок band'ов в пределах каждого уровня в TcxGridBandedTableView (для "объектов"), и сквозную нумерацию предпоследних band'ов в каждой колонке (для "показателей") слева на право?
Пример структуры
Автор: AndreyAgrh
Дата сообщения: 31.01.2012 08:05
tanaseduard,

NLS_DATE_FORMAT: DD-MON-RR

Name Data Type
------------------------------ ------------------------------
CONTNUM VARCHAR2(9 BYTE) NOT NULL
CLOSEDATE DATE

Данные отображаемые в SQL Navigator:
" 361","13-дек-2007"
" 363","28-апр-2008"
" 364","09-июн-2008"
" 2609","01-янв-0001"
" 626","25-янв-2008"
" 390","02-мар-2010"
" 640","07-май-2007"
" 2630","01-янв-0001"
" 411","01-янв-0001"
" 10006031","29-дек-2011"

Попробовал на пустом проекте .. все тоже самое:
" Project Project1.exe raised exception class EVariantInvalidArgError with message 'Invalid argument'. "

Автор: tanaseduard
Дата сообщения: 31.01.2012 08:35
AndreyAgrh

Попробуйте ограничить выбор в SQL по CLOSEDATE>'01.01.2001'. Ошибка будет появляться?
Автор: andreybear
Дата сообщения: 31.01.2012 08:38
AndreyAgrh
Чет тупанул.

Цитата:
Вопросик по cxGrid: при подключении поля DateTime из оракловой базы происходит ошибка Invalid Argument если попадается дата вида "01.01.000". Что можно с этим сделать?

А эти записи такого вида нужны вообще?
Автор: wasilissk
Дата сообщения: 31.01.2012 09:03
AndreyAgrh
Либо отфильтровывать такие даты, как уже посоветовали.
Либо в виде строки выводить (календарика девэкспрессовского тогда не будет)

Код:
select ... TO_CHAR(CLOSEDATE, 'DD-MON-RR') CLOSEDATE, ....

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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