IgorLife, аа, ну сорри, с этого надо начинать. Тут в основном дельфисты\билдеры. Тонкостей VC не знаю. Может кто поможет...
» Использование DevExpress (часть 4)
подскажите как быть с такой бедой...
есть панель от dxBarManager..на ней создал контрол типа DateEdit
беда заключается в том что если изменить дату руками и(не нажимая ентер) сменить фокус..то дата сбрасывается на старую..
ImmediatePost = true
ПС
56 дев
есть панель от dxBarManager..на ней создал контрол типа DateEdit
беда заключается в том что если изменить дату руками и(не нажимая ентер) сменить фокус..то дата сбрасывается на старую..
ImmediatePost = true
ПС
56 дев
было но сдругим типом контрола в баре
вариант решения
http://www.devexpress.com/Support/Center/KB/p/A233.aspx.
вариант решения
http://www.devexpress.com/Support/Center/KB/p/A233.aspx.
не совсем понял зачем это?может я не понял что дает пример...но мне надо не установка фокуса а подтверждение данных...при чем у обычного dateedit таких глюков нет
ПС
черт...я уже жалею что полностью построил приложения на девах...столько косяков что пипец...на меня уже начальник как на врага народа смотрит(
решил сей косяк так
в OnCurChange
Код:
if TryStrToDate(vartostr(FromDate.CurEditValue),dt) then
FromDate.EditValue:=FromDate.CurEditValue;
ПС
черт...я уже жалею что полностью построил приложения на девах...столько косяков что пипец...на меня уже начальник как на врага народа смотрит(
решил сей косяк так
в OnCurChange
Код:
if TryStrToDate(vartostr(FromDate.CurEditValue),dt) then
FromDate.EditValue:=FromDate.CurEditValue;
Есть форма, на ней cxGrid , в таблице редактируются несколько столбцов, из них столбцы с датой
с использованием календаря. Иногда при вызове календаря форма гаснет и остается только календарь,но
при выбое в нем даты форма опять появляется. Кто сталкивался с таким глюком. Раньше где то читал,
но сейчас никак не найду.
с использованием календаря. Иногда при вызове календаря форма гаснет и остается только календарь,но
при выбое в нем даты форма опять появляется. Кто сталкивался с таким глюком. Раньше где то читал,
но сейчас никак не найду.
Использую TcxCalcEdit.
Сохраняю значение в базу.
Свойство ImmediatePost установлено в True.
Но в базу записывается старое значение.
вот код:
Код: FBN('PRICE_AGENCY').Value := dbePriceAgency.EditValue;
Сохраняю значение в базу.
Свойство ImmediatePost установлено в True.
Но в базу записывается старое значение.
вот код:
Код: FBN('PRICE_AGENCY').Value := dbePriceAgency.EditValue;
X11
В хелпе написано:
Цитата:
В хелпе написано:
Цитата:
The ImmediatePost property is in effect for data-aware editorsЯ думаю, что data-aware нужно понимать как db-aware.
Странно. Ведь ест отдельно компоненты для баз данных. Там бы тогда и показали это свойство. Зачем в обычных тогда. Возможно Вы не правы даже.
мне кажется что выпуская столько релизов они уже давно забили на качество..а гонятся за количеством и деньгами..поэтому и косяки...я перешел из 53 на 56 и там просто море косяков...
поэтому я для себя оставлю только bar manager и cxgrid...ибо больше не хо получать люлей только из за некачественных компонентов
поэтому я для себя оставлю только bar manager и cxgrid...ибо больше не хо получать люлей только из за некачественных компонентов
Всем привет.
Столкнулся с тем, что не ловится GetHitTest.
Имею
procedure TfrmZRTGrids.grdPlanTVDragDrop(Sender, Source: TObject;
X, Y: Integer);
var
HitTest: TcxCustomGridHitTest;
HitTestItem: TcxCustomGridTableItem;
ItemIndex: Integer;
begin
HitTest := grdPlanTV.ViewInfo.GetHitTest(Point(X,Y));
// other
end;
Столкнулся с тем, что не ловится GetHitTest.
Имею
procedure TfrmZRTGrids.grdPlanTVDragDrop(Sender, Source: TObject;
X, Y: Integer);
var
HitTest: TcxCustomGridHitTest;
HitTestItem: TcxCustomGridTableItem;
ItemIndex: Integer;
begin
HitTest := grdPlanTV.ViewInfo.GetHitTest(Point(X,Y));
// other
end;
У кого-нибудь работает
cxGridDBTableView.DataController.DataSet.Locate?
Добавлено:
Код:
n := 'ID';
if cxGridDBTableView.DataController.datasource.DataSet.Locate(n,
cxGridDBTableView.DataController.DataSet.FieldByName(n).Value, [])
then
begin
cxGridDBTableView.DataController.DataSet.Refresh;
ShowMessage('cxGridDBTableView.DataController.DataSet.Refresh');
end;
cxGridDBTableView.DataController.DataSet.Locate?
Добавлено:
Код:
n := 'ID';
if cxGridDBTableView.DataController.datasource.DataSet.Locate(n,
cxGridDBTableView.DataController.DataSet.FieldByName(n).Value, [])
then
begin
cxGridDBTableView.DataController.DataSet.Refresh;
ShowMessage('cxGridDBTableView.DataController.DataSet.Refresh');
end;
X11
Странный вопрос. Почему DataSet.Locate должен не работать?
Странный вопрос. Почему DataSet.Locate должен не работать?
DriftDream
Координаты скорее всего относительно экрана, а для GetHitTest нужны относительно грида.
Координаты скорее всего относительно экрана, а для GetHitTest нужны относительно грида.
Кто-нибудь использует cxGrid в DLL?
Есть Dll-ка с одной формой.
На форму кинул cxGrid. Если в гриде есть хоть одна колонка, то при создании формы вываливается AV:
Цитата:
На форме больше ничего нет. Ни событий, ни процедур, ни функций, ничего не создавал.
D2007, Dev56.
Есть Dll-ка с одной формой.
На форму кинул cxGrid. Если в гриде есть хоть одна колонка, то при создании формы вываливается AV:
Цитата:
Access violation at address 08E8A07C in module '***.dll'. Read of address 00000000.
На форме больше ничего нет. Ни событий, ни процедур, ни функций, ничего не создавал.
D2007, Dev56.
X11
Цитата:
Постоянно использую.
Цитата:
Трудно что-нибудь советовать. Ищите ляпсус.
Был в DevExpress один глюк при работе с DLL без пакетов. Лечился так:
Код: uses dxGDIPlusAPI;
.....
initialization
dxInitializeGDIPlus;
finalization
dxFinalizeGDIPlus;
Цитата:
Кто-нибудь использует cxGrid в DLL?
Постоянно использую.
Цитата:
Есть Dll-ка с одной формой. На форму кинул cxGrid. Если в гриде есть хоть одна колонка, то при создании формы вываливается AV
Трудно что-нибудь советовать. Ищите ляпсус.
Был в DevExpress один глюк при работе с DLL без пакетов. Лечился так:
Код: uses dxGDIPlusAPI;
.....
initialization
dxInitializeGDIPlus;
finalization
dxFinalizeGDIPlus;
marser, спасибо, но не помогло.
В чём же может быть ляпсус?
На форме кроме пустого грида с одной колонкой ничего нет.
Добавлено:
Без колонки форма с гридом нормально создаётся и показывается.
В чём же может быть ляпсус?
На форме кроме пустого грида с одной колонкой ничего нет.
Добавлено:
Без колонки форма с гридом нормально создаётся и показывается.
X11
А если ручками создать колонку. Где упадет? На TableView.CreateColumn?
А если ручками создать колонку. Где упадет? На TableView.CreateColumn?
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=701271&msg=7763434
Цитата:
Кто подскажет, что именно нужно переназначить, где и как?
Добавлено:
Цитата:
угу, при создании колонки тоже падает
Добавлено:
Странность возникла такая: теперь AV даже без колонки. Просто грид на форме лежит пустой.
Цитата:
После долгих и мучительных экспериментов, я все же нашел причину всех бед.
При загрузке формы из dll, необходимо в dll переназначить значения Application и Screen (Так написано во многих статьях в инете.), так вот, если не инициализировать параметр Screen, то все вышеперечисленные беды пропадают.
Кто подскажет, что именно нужно переназначить, где и как?
Добавлено:
Цитата:
X11
А если ручками создать колонку. Где упадет? На TableView.CreateColumn?
угу, при создании колонки тоже падает
Добавлено:
Странность возникла такая: теперь AV даже без колонки. Просто грид на форме лежит пустой.
Несколько лет назад боролся с AV в dll с DevExpress, победил так
Код:
var
DllAppHandle: THandle;
...
function InitAdminPlugIn(AppHandle: THandle; DbHandle: TISC_DB_HANDLE): Boolean; stdcall;
begin
dxInitializeGDIPlus;
DllAppHandle := Application.Handle;
Application.Handle := AppHandle;
...
end;
procedure FreeAdminPlugIn; stdcall;
begin
dxFinalizeGDIPlus;
Application.Handle := DllAppHandle;
...
end;
Код:
var
DllAppHandle: THandle;
...
function InitAdminPlugIn(AppHandle: THandle; DbHandle: TISC_DB_HANDLE): Boolean; stdcall;
begin
dxInitializeGDIPlus;
DllAppHandle := Application.Handle;
Application.Handle := AppHandle;
...
end;
procedure FreeAdminPlugIn; stdcall;
begin
dxFinalizeGDIPlus;
Application.Handle := DllAppHandle;
...
end;
InitAdminPlugIn и FreeAdminPlugIn нужно где-то и как-то вызвать?
В DLL или в главном приложении?
В DLL или в главном приложении?
X11
В главном приложении, Init после LoadLibrary, Free перед FreeLibrary.
В главном приложении, Init после LoadLibrary, Free перед FreeLibrary.
X11
В DLL. InitAdminPlugIn - процедура вызова DLL. Но мне кажется, что проблема не в Application.Handle.
procedure InitAdminPlugIn(AppHandle: THandle); stdcall;
begin
Application.Handle := AppHandle;
Создание и показ формы
end;
Добавлено:
X11
Для красоты можно и Application.Icon.Handle (DLL) = Application.Icon.Handle (EXE)
В DLL. InitAdminPlugIn - процедура вызова DLL. Но мне кажется, что проблема не в Application.Handle.
procedure InitAdminPlugIn(AppHandle: THandle); stdcall;
begin
Application.Handle := AppHandle;
Создание и показ формы
end;
Добавлено:
X11
Для красоты можно и Application.Icon.Handle (DLL) = Application.Icon.Handle (EXE)
Цитата:
В DLL. InitAdminPlugIn - процедура вызова DLL
Да, это процедуры dll, вызываемые в главном приложении.
Цитата:
Но мне кажется, что проблема не в Application.Handle.
Все может быть, в свое время, на какой-то версии я долго не мог победить AV при использовании AlphaControls и DevExpress в dll.
В общем у меня теперь проблема уже и без девовских контролов. Так что, я создам тему в другом месте, а не здесь. Потом дам ссылку.
Добавлено:
В общем я привёл плагин к исходному состоянию.
Плагин работает нормально, но код создания колонки вызывает AV
Код: procedure TfmApartSearch2.Button1Click(Sender: TObject);
Var
col: TcxGridDBColumn;
begin
col := cxGrid1DBTableView1.CreateColumn;
end;
Добавлено:
В общем я привёл плагин к исходному состоянию.
Плагин работает нормально, но код создания колонки вызывает AV
Код: procedure TfmApartSearch2.Button1Click(Sender: TObject);
Var
col: TcxGridDBColumn;
begin
col := cxGrid1DBTableView1.CreateColumn;
end;
Новая проблема.
Создание cxGridDBColumn в DLL вызывает Access violation, если форма создана второй раз.
Есть на форме пустой cxGrid (без колонок) и кнопка с кодом создания колонки
Код: procedure TfmApartSearch2.Button1Click(Sender: TObject);
Var
col: TcxGridDBColumn;
begin
col := cxGrid1DBTableView1.CreateColumn;
end;
Создание cxGridDBColumn в DLL вызывает Access violation, если форма создана второй раз.
Есть на форме пустой cxGrid (без колонок) и кнопка с кодом создания колонки
Код: procedure TfmApartSearch2.Button1Click(Sender: TObject);
Var
col: TcxGridDBColumn;
begin
col := cxGrid1DBTableView1.CreateColumn;
end;
Цитата:
Создание cxGridDBColumn в DLL вызывает Access violation, если форма создана второй раз.
Не проверял, я создаю форму один раз, при загрузке плагина, затем только Show. Плюс сильно смущает dxFinalizeGDIPlus на каждое закрытие формы.
Цитата:
Плюс сильно смущает dxFinalizeGDIPlus на каждое закрытие формы.
так перед созданием нужно вызвать dxInitializeGDIPlus;
а при закрытии dxFinalizeGDIPlus
Добавлено:
Ура. Я сделал ещё проще.
У главной формы плагина в модуле, в самом конце дописал
Код: initialization
dxInitializeGDIPlus;
finalization
dxFinalizeGDIPlus;
X11
Цитата:
Вы читать умеете? Этот код я предложил Вам еще в первом ответе на ваш вопрос, а Вы устроили дебаты на целый день на двух форумах.
Цитата:
Ура. Я сделал ещё проще.
Вы читать умеете? Этот код я предложил Вам еще в первом ответе на ваш вопрос, а Вы устроили дебаты на целый день на двух форумах.
Вот что я написал.
Цитата:
Как потом оказалось, то Вы оказались правы, а ошибка у меня возникала по другой причине на тот момент. Я просто в плагине столько всего наворотил пока решал проблему.
В итоге пришёл к Вашему решению
Спасибо в любом случае
Цитата:
marser, спасибо, но не помогло.
Как потом оказалось, то Вы оказались правы, а ошибка у меня возникала по другой причине на тот момент. Я просто в плагине столько всего наворотил пока решал проблему.
В итоге пришёл к Вашему решению
Спасибо в любом случае
У грида есть 2 уровня.
На втором уровне есть 4 детальных cxGridDBTableView, которые привязаны к первому мастеру-cxGridDBTableView. Не могу понять, как отловить момент переключения между вкладками 4ёх детальных cxGridDBTableView. Нужно в зависимости от условий разрешать/запрещать перходить на второй cxGridDBTableView.
Добавлено:
Вернее нужно так: при переходе на вкладку второго cxGridDBTableView нужно в зависимости от условий открыть или закрыть привязанный набор данных.
На втором уровне есть 4 детальных cxGridDBTableView, которые привязаны к первому мастеру-cxGridDBTableView. Не могу понять, как отловить момент переключения между вкладками 4ёх детальных cxGridDBTableView. Нужно в зависимости от условий разрешать/запрещать перходить на второй cxGridDBTableView.
Добавлено:
Вернее нужно так: при переходе на вкладку второго cxGridDBTableView нужно в зависимости от условий открыть или закрыть привязанный набор данных.
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.