delphi — Как создать оболочку для другого приложения и отобразить ее в виде Borland VCL (c ++)

Я на самом деле отвечаю за сетевое приложение FIP c ++, впервые работающее с Embarcadero C ++ Builder XE5.
Приложение почти закончено, но я не могу найти, как реализовать последнюю функцию …

Я хотел открыть внешний Windows HyperTerminal, чтобы увидеть, что происходит с данным COM-портом, для этого я использую ShellExecute (), чтобы запустить его из своего приложения, но это немного уродливо, так как есть 2 разных окна.

Мне было интересно, можно ли было интегрировать этот недавно открытый HyperTerminal в существующую форму (например, Panel). Я не мог найти ничего связанного, кроме этого =>
Стиль Дельфи
, но я не понимаю байта ответа @mghie, так как это delphi.

Если у кого-то есть подсказка, мне действительно интересно, даже самая простая подсказка!

1

Решение

Почти во всех моих проектах, где требуется взаимодействие через COM-порт, я использую AsyncPro. Проект очень хорошо задокументирован с помощью справочного руководства на ~ 1000 страниц.

Справочное руководство

Руководство разработчика

Для этого случая пакет предоставляет терминал VCL, который просто помещается в форму. Он довольно гибкий с множеством опций для настройки его поведения.

введите описание изображения здесь
введите описание изображения здесь

4

Другие решения

Я хотел что-то подобное в прошлом, но безуспешно.

1. Единственное, что мне удалось сделать, это полная противоположность.

  • закрепить мое окно VCL внутри другого (не приложения VCL), но это решило мои проблемы
  • Если у вас терминал является консольным окном, то я сомневаюсь, что даже это можно сделать.
  • в любом случае найдите ручку нужного окна
  • найти дескриптор присоединяемого подкомпонента
  • установите родительский элемент вашего подокна в него / или используйте ручную док-станцию

2. Может быть, вы можете сделать некоторые забавные вещи

  • как спрятать терминал где-нибудь
  • и непрерывно копировать его графику в ваше окно
  • новее сделал эту вещь скрыть
  • но скопировать содержимое выполнимо (хотя в Windows иногда немного нестабильно)
  • сделал это один раз, чтобы кормить мое приложение с помощью ИК-камеры из другого приложения
  • в то время как «фокус» остается на скрытом терминале, он должен работать
  • также вы можете попытаться отправить сообщения на него как-то, если вам нужен фокус …

Извините за неопределенный ответ, но, по крайней мере, вы видите мои подходы

  • может быть, у кого-то есть лучший способ сделать это
1