• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Обновление изображения в окне Компас

Автор user1313, 14.12.10, 15:41:11

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

user1313

Добрый день.
В нашем проекте требуется использовать встраивание ActiveX-контейнера с превью Компаса. Проблема состоит в том, что изображение не обновляется корректно - требуется ресайз всего окна, чтобы увидеть изображение. Аналогичная ситуация с самим Компасом как отдельным приложением. Сталкивался ли кто-либо с подобным? Удавалось ли решить проблему?
Компьютер использует интеловскую встроенную видеокарту, что само по себе - источник проблем, но, возможно, причина не в ней. Компас 3D V12, с ключом.
Заранее спасибо.

...
{==============================================================================}
type
TPole = class(TPanel)
private
public
  constructor Create(AOwner:TComponent);
  destructor Destroy;
  procedure WMPaint(var Msg:TMessage); message WM_PAINT;
  procedure DrawGrupp;
end;
{==============================================================================}
...
{==============================================================================}
constructor TPole.Create(AOwner:TComponent);
begin
  inherited Create(AOwner);
end;
{==============================================================================}
destructor TPole.Destroy;
begin
  inherited Destroy;
end;
{==============================================================================}
constructor TPole.Create(AOwner:TComponent);
begin
  inherited Create(AOwner);
end;
{==============================================================================}
destructor TPole.Destroy;
begin
  inherited Destroy;
end;
{==============================================================================}
constructor TPole.Create(AOwner:TComponent);
begin
  inherited Create(AOwner);
end;
{==============================================================================}
destructor TPole.Destroy;
begin
  inherited Destroy;
end;
{==============================================================================}
procedure TPole.DrawGrupp;
begin
  if PaintFlag then Exit;
  PaintFlag:=True;
  if Grupp <> 0 then Doc.ksDeleteObj(Grupp); // Удаляет группу из чертежа
  Grupp:=Doc.ksNewGroup(Rezim);
  Doc.ksLineSeg(0,0,10,10,1);
  Doc.ksLineSeg(0,0,-10,10,1);
  Doc.ksEndGroup;
  KompasApi.ksPumpWaitingMessages;
  KompasApi.ksRefreshActiveWindow;
  KompasApi.ksPumpWaitingMessages;
  Doc.ksDrawKompasGroup(Pole.Handle,Grupp);
  PaintFlag:=False;
end;
{==============================================================================}
procedure TPole.WMPaint(var Msg:TMessage);
begin
  inherited;
  if PaintFlag then Exit;
  DrawGrupp;
end;