slydiman |
Отправлено: 16.08.2003, 01:02 |
|
Не зарегистрирован
|
Сделал ActiveX на основе RxCalcEdit, при загрузке в IE выпадает с access violation. Аналогичный ActiveX на основе TDateTimePicker прекрасно работает. Проблема возникает при
CODE |
// Create VCL Object Wrapper for our Control
m_VclCtl = (TWinControlAccess<TVCL>*)(TVCL::CreateParentedControl(__classid(TVCL), hwndParkingWindow));
|
в файле atlvcl.h
Возможно это происходит из-за того что RxCalcEdit создает свою скрытую форму с калькулятором.
Положил RxCalcEdit на TActiveForm — все в порядке. Но это не удобно, нужно переписывать все свойства ActiveX объекта.
Кроме того есть другая проблема — не работают кнопки стрелок и backspace.
|
|
Гость_slydiman |
Отправлено: 16.08.2003, 23:48 |
|
Не зарегистрирован
|
TRxCalcEdit является наследником TCustomComboEdit (файл ToolEdit.pas из пакета RXLib)
В конструкторе создается кнопка (справа от поля Edit).
CODE |
constructor TCustomComboEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF RX_D3}
ControlStyle := ControlStyle + [csCaptureMouse];
{$ENDIF}
AutoSize := False;
FDirectInput := True;
FClickKey := scAltDown;
FPopupAlign := epaRight;
FBtnControl := TWinControl.Create(Self);
{$IFDEF WIN32}
with FBtnControl do
ControlStyle := ControlStyle + [csReplicatable];
{$ENDIF}
FBtnControl.Width := DefEditBtnWidth;
FBtnControl.Height := 17;
FBtnControl.Visible := True;
FBtnControl.Parent := Self; // Access violation здесь !!!
FButton := TEditButton.Create(Self);
FButton.SetBounds(0, 0, FBtnControl.Width, FBtnControl.Height);
FButton.Visible := True;
FButton.Parent := FBtnControl;
TEditButton(FButton).OnClick := EditButtonClick;
Height := 21;
FDefNumGlyphs := 1;
FGlyphKind := gkCustom;
end;
|
Еще точнее access violation наступает в процессе прорисовки созданной кнопки.
Сразу после FBtnControl.Parent := Self;
вызывается TCustomComboEdit.WMSize,
потом TCustomComboEdit.UpdateBtnBounds, и ... access violation
Причем после нажатия ОК, ActiveX нормально прорисовывается и работает дальше.
Может есть какой патч для RXLib, где кнопка в TCustomComboEdit создается каким-то
другим образом (не в конструкторе)?
|
|
|