powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Использование TStatusBar в вызовах DLL
12 сообщений из 37, страница 2 из 2
Использование TStatusBar в вызовах DLL
    #40074667
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пожалуй оставлю тут, мало ли кому пригодится :)

https://github.com/RefactoringGuru/design-patterns-delphi
...
Рейтинг: 0 / 0
Использование TStatusBar в вызовах DLL
    #40075117
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zedxxx,

Доброго дня zedxxx !

Попытался реализовать Ваше предложение
взгляните пожалуйста верно ли Вас понял.

Ошибка ушла - это наверняка

InterAction.pas - здесь описание типов двух серверов
TExeServer - создание сервера-связи в EXE файле
TDllServer -создание сервера-связи в DLL файле

И связь между ними через вызов события EXE сервера,
все ссылки на ячейки и объекты основного EXE попытался исключить.

Код до конца не оптимизировал... кое-что можно наверняка сократить.

Сомнения
Не много ли уделено ресурсов на передачу данных между серверами ?
возможно это можно сделать через возврат переменной процедурного типа ?


Спасибо за Ваши предложения
...
Рейтинг: 0 / 0
Использование TStatusBar в вызовах DLL
    #40075124
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vizit0r

А если совета недостаточно, а нужен только код - то это не разработчик, а копи-пастер.


Вы понимаете русский язык - суда по написанному - "ДА"
Я говорю - "A...."
Какой именно смысл я вложил в содержание фразы ?
Мне кажется гораздо проще изложить всю фразу....

P.S. функцией "копи- пастер" - без разбора содержание и сути здесь не обойдешься
...
Рейтинг: 0 / 0
Использование TStatusBar в вызовах DLL
    #40075130
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
энди
пожалуй оставлю тут, мало ли кому пригодится :)

https://github.com/RefactoringGuru/design-patterns-delphi


Спасибо за Ваше участие
Не сомневайтесь непременно пригодиться.
Полная и целостная реализация фразы "А" - применима во всех случаях
...
Рейтинг: 0 / 0
Использование TStatusBar в вызовах DLL
    #40075132
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X

zedxxx,

Спасибо за Ваши предложения

Что-то файл на выкладывается ...

...
Рейтинг: 0 / 0
Использование TStatusBar в вызовах DLL
    #40075177
zedxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TDllServer и TExeServer должны реализовывать интерфейсы. А TDllLoop вообще не нужен, возвращайте из dll сразу TDllServer.

В IDllInterface нельзя использовать string в параметре. Вы же данные передаёте в чужое адресное пространство. Замените на WideString или PWideChar. Ну и, соответственно, никаких TComponent в параметрах тоже быть не должно, допустимы только интерфейсные переменные.
...
Рейтинг: 0 / 0
Использование TStatusBar в вызовах DLL
    #40075180
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zedxxx
TDllServer и TExeServer должны реализовывать интерфейсы.
А TDllLoop вообще не нужен, возвращайте из dll сразу TDllServer.

В IDllInterface нельзя использовать string в параметре. Вы же данные передаёте в чужое адресное пространство. Замените на WideString или PWideChar. Ну и, соответственно, никаких TComponent в параметрах тоже быть не должно, допустимы только интерфейсные переменные.


TDllLoop = - это базовый класс для прикладной задачи (в данному случае не существенно)
По типам замечания - принято - спасибо !

Хотелось бы услышать по поводу
Сомнения
Не много ли уделено ресурсов на передачу данных между серверами ?
возможно это можно сделать через возврат переменной процедурного типа ?

Не ?????
...
Рейтинг: 0 / 0
Использование TStatusBar в вызовах DLL
    #40075184
zedxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что вы подразумеваете под ресурсами? Сколько раз в секунду должен выполняться данный код?

Альтернативный вариант тут уже предлагали - написать всё на колбеках.
...
Рейтинг: 0 / 0
Использование TStatusBar в вызовах DLL
    #40075274
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zedxxx

вариант тут уже предлагали - написать всё на колбеках.


А такой стиль наверное не очень хорошо ?
Но работает ....

type
TReturnMessage = procedure(aValue: Integer);

type IDllInterface = interface(IInterface)
['{EDA14150-3969-44C5-A366-1586D407102A}']
procedure ReturnSave(Id: Integer; Value: TReturnMessage); stdcall;


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
unit DllInterface;

interface

uses Classes,
     Vcl.ComCtrls;

type
  TReturnMessage = procedure(aValue: Integer);

type IDllInterface = interface(IInterface)
  ['{EDA14150-3969-44C5-A366-1586D407102A}']
  procedure BegRegisterDll(Server: TComponent);     stdcall;
  procedure EndRegisterDll;                         stdcall;
  function  SendMessageDll(aText: String): Boolean; stdcall;
  procedure ReturnSave(Id: Integer; Value: TReturnMessage);      stdcall;
end;

implementation

end.



Спасибо за уделенное время
...
Рейтинг: 0 / 0
Использование TStatusBar в вызовах DLL
    #40075276
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

Опять файл не приложился
...
Рейтинг: 0 / 0
Использование TStatusBar в вызовах DLL
    #40075278
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zedxxx

Что вы подразумеваете под ресурсами?


На серьезный проект особо времени и писанины не жалко
Когда проект невелик - создавать свои классы не особо хочется
В моем конкретном случае - "дырка уже заткнута" с две неделя назад
Подключать связующие сервера не хочется,
Но понять и отработать варианты для дальнейшего нужно
вот и весь смысл текущей темы

Еще раз спасибо
...
Рейтинг: 0 / 0
Использование TStatusBar в вызовах DLL
    #40075335
zedxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обычно, написанный код ещё надо и сопровождать какое-то время. Поэтому усилия затраченные на написание хорошо структурированного и читаемого кода, окупают себя сторицей.
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Использование TStatusBar в вызовах DLL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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