powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Интегрировать одно приложение в другое
25 сообщений из 56, страница 1 из 3
Интегрировать одно приложение в другое
    #39850005
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одно приложение Т! - на Дельфи 10.2. В него надо вставить моё приложение Е! (на Дельфи 10.3.1) /в один из табов (TTabSheet)/. Как это лучше провернуть? Из Т! в Е! передаётся параметром 1 номер ID, и Е! секунд 10 его обрабатывает. Хорошо бы задержки при открытии табы избежать, а также избежать зависания основного приложения Т!.

PS Исходные коды обоих у меня есть.
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850030
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin,

А грабить корованы они совместно не должны?
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850033
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad F, грабить корованы лучше водиночку
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850041
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin,

А как же шайка? - разве она не повышает вероятность достижения успеха в обозначенном мероприятии?
И, между прочим, почему бы тем программам, для тех же целей, попросту не обмениваться необходимыми данными для самостоятельной их визуализации?
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850042
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CleintMainForm.ParentWindow:=ParentTab.Handle;
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850043
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor CookinИсходные коды обоих у меня есть.

В этом случае проще всего подключить модули одного к другому и сделать из них монолит-кирпич.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850045
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одно на все приложение, короче. Раз уж все исходники есть.))
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850047
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chrome работает с несколькими процессами. Можешь посмотреть код, как там реализовано данная задача.
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850057
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Хотелось бы ещё оставить возможность STANDALONE работы моего E!
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850060
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatCleintMainForm.ParentWindow:=ParentTab.Handle;
Да это понятно, там надо ещё CreateParams переписать, чтобы кнопок Min/Max/Close в заголовке не было (да и самого заголовка не было)
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850061
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014,

А что Chrome на Дельфи написан?
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850064
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor CookinХотелось бы ещё оставить возможность STANDALONE работы моего E!

То есть собирать из одной и той же пачки модулей три разных приложения - mission
impossible для современных программистов? Ню-ню...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850066
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor CookinRgreat, Да это понятно, там надо ещё CreateParams переписать, чтобы кнопок Min/Max/Close в заголовке не было (да и самого заголовка не было)Не надо там переписывать.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
    FDockMyForm.BorderStyle:=bsNone;
    FDockMyForm.Position:=poDesigned;
    FDockMyForm.Left:=0;
    FDockMyForm.Top:=0;
    FDockMyForm.Constraints.MinHeight:=0;
    FDockMyForm.Constraints.MinWidth:=0;
    FDockMyForm.Width:=Res[1];
    FDockMyForm.Height:=Res[2];



Ну и события на ресайз таба передавай.
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850075
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я склеивал приложения через обычную панель.

Показывал здесь давным давно ещё в XP, notepad, sol.exe
может, сохранилось где-то.

Окно внешнего приложения (handle) и handle панелки связаны через её Tag и SetWindowLong легко ресайзится и прочее дельфийское.
Соответственно, для ExternalApp - SetWindowPos и проч. WinAPI.
Управление менюшками и кнопками извне ExternalApp может быть через колбеки или мессагам.
Единственно, не надо приклеиваться самому к себе
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850087
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor CookinОдно приложение Т! - на Дельфи 10.2. В него надо вставить моё приложение Е! (на Дельфи 10.3.1) /в один из табов (TTabSheet)/. Как это лучше провернуть? Из Т! в Е! передаётся параметром 1 номер ID, и Е! секунд 10 его обрабатывает. Хорошо бы задержки при открытии табы избежать, а также избежать зависания основного приложения Т!.

PS Исходные коды обоих у меня есть.
Очень просто. Второе приложение оформляешь как COM - сервер. Особо не изгаляясь, дельфийским визардом.
А в первом приложении пользуешься вторым: размещаешь в табе OLE - контейнер, в контейнер помещаешь второе. Вот и всё, работы на 5 минут. Ну ладно, на 30.

Чтобы не зависало - при запуске первого приложения второе запускать параллельно.
Да, оле - контейнер не всегда хорош в мелочах, но обычно его достаточно.
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850568
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor CookinВ него надо вставить моё приложение Е! (на Дельфи 10.3.1) /в один из табов (TTabSheet)/. Как это лучше провернуть? Из Т! в Е! передаётся параметром 1 номер ID, и Е! секунд 10 его обрабатывает. Хорошо бы задержки при открытии табы избежать, а также избежать зависания основного приложения Т!.А это нужно для вновь создаваемого процесса или для уже работающих тоже?
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39850572
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookinziv-2014,

А что Chrome на Дельфи написан?
А какая разница, api оно и в windows api.
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39851379
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рустам, для вновь создаваемого. Дело в том, что включение нового приложения в зоопарк имеющихся - длительный процесс. Потому ТЗ было - включить в состав имеющегося. Разрабатывается и тестируется оно, однако, как standalone
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39852854
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin> Рустам, для вновь создаваемого.

Тогда с чем именно возникли проблемы?
Потоки, "докинг" окна, еще что-то?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39852956
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

Проблем никаких не возникло. Советуюсь просто.
С одной стороны хочется приложения разделить, ведь если просто "засунуть"(мою главную форму в их TTabSheet), то есть риск что полезут в мои модули и что-то сломают.

Так что думаю насчёт bpl . Но вот с чем столкнулся - bpl подлинковывает другие required bpl, короче, если где-то (3-rd party package source code) я что-то поменял, то мой собственный bpl этого не видит, видимо надо пересобрать пакеты
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39852959
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor CookinГаджимурадов Рустам,

Проблем никаких не возникло. Советуюсь просто.
С одной стороны хочется приложения разделить, ведь если просто "засунуть"(мою главную форму в их TTabSheet), то есть риск что полезут в мои модули и что-то сломают.

Так что думаю насчёт bpl . Но вот с чем столкнулся - bpl подлинковывает другие required bpl, короче, если где-то (3-rd party package source code) я что-то поменял, то мой собственный bpl этого не видит, видимо надо пересобрать пакеты
Создай свой bpl с нужным тебе rtl.
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39852974
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin,

Если идти именно этим путем, то можно оформить отчуждаемый функционал со всеми необходимыми формами в виде обычной DLL с общим менеджером памяти (SimpleShareMem). Тоже не без гимора, конечно, ибо требует также передачи в нее головного экземпляра Application и т.д., но в принципе все работает, я даже корректны к БД туда передаю.
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39853014
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookinриск что полезут в мои модули и что-то сломают.
Так запрети править, лицензируй. Повесь табличку "Работает - не трожь!", "Не влезай! Убьёт"
Victor Cookinесли где-то (3-rd party package source code) я что-то поменял, то мой собственный bpl этого не видит, видимо надо пересобрать пакеты. Конечно надо. BPL скомпилированная давно об изменениях не знает. И новую сборку ещё надо будет разослать заинтересованным... Которые тоже не знают, кого там жареный петух клюнул...
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39858188
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё сделал, всё нравится. Даже в своём приложении текстовый редактор - динамически загружаемый пакет с экспортируемыми функциями:

Код: pascal
1.
2.
3.
4.
5.
exports Show;
exports CloseForm;
exports Clear;
exports Add;
exports GetStrings;


Но к сожалению Основной проект тогда тоже должен быть скомпилирован с Runtime packages. А этого никто из заказчиков не хочет.
Надо переделывать теперь в DLL.
...
Рейтинг: 0 / 0
Интегрировать одно приложение в другое
    #39858611
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin,

Все перечисленные издержки выбранного способа были хорошо известны с самого начала.
Странно, что ты счёл необходимым таки хлопнуть этими граблями по лбу.
...
Рейтинг: 0 / 0
25 сообщений из 56, страница 1 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Интегрировать одно приложение в другое
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]