![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| bagos |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 275 Регистрация: 17.6.2006 Репутация: нет Всего: 1 |
Господа знающие, подскажите, как грамотней писать потоки? стоит ли использовать имеющийся в дельфях класс, или использовать винапи? какие плюсы минусы?
|
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
||||
|
||||
| bagos |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 275 Регистрация: 17.6.2006 Репутация: нет Всего: 1 |
Дабы не создавать еще одну тему напишу тут, что мне требуется сделать.
В течении года делал для начальника небольшие простенькие программки. По логике и интерфейсу все программы очень просты и не емки. На форме может на ходится пару тройку эдитов, мемо и пару лейблов, пару кнопок. Задаются параметры в эдиты в мемо выводится результаты, где то нет эдитов а есть другие компоненты управления и ввода, не суть. Вообщем таких программок около 100, начальник хочет чтобы я сделал теперь отдельную программу, только чтобы эти программы подключались отдельно. Вообщем переводя на наш язык хочет поддержку подключаемых модулей в одной программе. Да так чтобы эти модули открывались в отдельном окне, но при этом не хочет чтобы каждая программа была отдельным исполняемым файлов. Некоторые программы делают долгие временные рассчеты, от 2 мин до часу. По программа не спрашивайте там сам черт не разберет что к чему. Меня интересует ваше мнение по-поводу создания подобной системы. Начну вопросы по порядку: 1. Вопрос как и где содержать формы в подключаемых модулях, какие сущ. решения, варианты? 2. Должны ли подключаемые модули(формы), открываться в отдельном потоке? 3. Некоторые программки должны будут брать параметры и/или использовать функцию которая находится в главной программе и также посылать ей некоторые данные. С уважением, bagos |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Формы в потоки не выноси, нормально работать это не будет
-------------------- Обижено школьников: 8 |
|||
|
||||
| bagos |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 275 Регистрация: 17.6.2006 Репутация: нет Всего: 1 |
Поиски в интернете дали что формы в длл держать не правильно и работать это будет не айс, от использования bpl также отказываюсь. Какие будут идеи?
|
|||
|
||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 3 Всего: 13 |
||||
|
||||
| bagos |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 275 Регистрация: 17.6.2006 Репутация: нет Всего: 1 |
Что за фреймы, будьте добры поподробней.
|
|||
|
||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
читай про плагины (dll) очень даже айс -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| _Dimon_ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 25.6.2007 Где: Украина Репутация: нет Всего: 1 |
||||
|
||||
| imageman |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 30.9.2004 Репутация: 1 Всего: 1 |
для обмена информацией между модулями я обычно использую отдельный юнит под названием GlobalVars (ну или GlobalUnit) - этот .pas файл упоминаешь в uses в каждом модуле-форме и можно использовать общие переменные. Только для dll это ведь не будет работать?
Может для dll можно сделать отдельную GlobalVars.dll? |
|||
|
||||
| cat512 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 438 Регистрация: 20.3.2007 Репутация: 7 Всего: 15 |
Хотелось бы услышать аргументы против bpl. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Это ужасно -------------------- Обижено школьников: 8 |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
bems, это наверно новое слово в программировании. Что мы с тобой, два старпера, понимаем в современном кодинге?
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Poseidon, вообще для полного труъ это должен быть inc-файл
-------------------- Обижено школьников: 8 |
|||
|
||||
| imageman |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 30.9.2004 Репутация: 1 Всего: 1 |
а поподробнее? Как это делаете вы? Как удобнее сделать обмен информацией между разными unit внутри одной программы? Как удобнее сделать обмен информацией между разными dll? Как удобнее сделать обмен информацией между разными exe? Как удобнее сделать обмен информацией между разными машинами в пределах локальной сети? Как удобнее сделать обмен информацией между разными машинами через интернет? |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Метод, который применим в конкретном случае определяется исходя из конкретной задачи/архитектуры приложения. IPC Универсального метода не может быть, с некоторыми ограничениями на него могут претендовать (имхо) только сокеты. Но во многих случаях их применение избыточно. |
|||
|
||||
| bems |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Использовать секции экспорта. Интерфейс продумывать. Включать в обе длл одни и те же юниты можно, но всё так же избегать глобальных состояний. Разумеется у разных копий юнита в разных длл будут разные копии данных юнита MMF, пайпы, сокеты
Это сообщение отредактировал(а) bems - 15.12.2010, 05:22 -------------------- Обижено школьников: 8 |
||||||
|
|||||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |