Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 14.06.2019, 07:06   #11
artemavd
Модератор
Заслуженный модератор
 
Регистрация: 05.06.2008
Адрес: г.Иркутск
Сообщений: 4,179
Репутация: 837
Вопрос

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
На .bpl-е создаем форму и потом Edit'ов и все что нужно. Потом: чтобы "программа" работал на другом ПК надо копировать из C:\Users\Public\Documents\RAD Studio\10.0\Bpl тот bpl=который вы создали и + rtl_xx; vcl_xx; и вставить на С:\Windows\SysWOW64
Благодарю за ответы и помощь, вроде все получилось!
Есть еще вопросы некоторые.
Когда пакет загружается через LoadPackage, то он же грузится в адресное пространство программы и поэтому я не могу перезаписать свою bpl пока она загружена и пока программа работает.
Правильно ли я понял?
Как сделать, чтобы пакет загрузился, но, потом я бы мог перезаписать bpl новой версией, без закрытия программы?
__________________
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума   Ответить с цитированием
Старый 14.06.2019, 16:42   #12
xxbesoxx
Профессионал
 
Аватар для xxbesoxx
 
Регистрация: 10.08.2010
Адрес: Грузия Рустави
Сообщений: 1,333
Репутация: 719
Отправить сообщение для xxbesoxx с помощью Yahoo
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Как сделать, чтобы пакет загрузился, но, потом я бы мог перезаписать bpl новой версией, без закрытия программы?
без закрытия программы некак.! На пример есть на одну .bpl несколько форма - Edit-ов Button-и ... и.т.г и требуется менять код или вносить изменения, добавить что то...
1) надо перекомпилировать тот .bpl на Delphi и потом копировать его и переписать на другом ПК
2) .bpl может будет несколько в проекте и на каждом .bpl работаеть разние программист и если он НЕ будеть перекопилировать свой .bpl не увидить то изменение который он внедрил проекте....
3) его применяют компаный когда они нанимають программистов и у каждого программистов свой .bpl и он работаеть на него... потом кто там "старший программист" или как они себя называют Забирает его и подключаеть своего проекту ....
4) в общем нужное штука когда проект очень большой....
-- Когда то: 08.01.2015 мне тоже пришлось разбираться начиналь постит на форуме https://www.programmersforum.ru/showthread.php?t=271436
artemavd Удачного и успешного вам рабочего дня
__________________
E_MAIL: rijgvina7@yahoo.com

Последний раз редактировалось xxbesoxx; 14.06.2019 в 16:47.
xxbesoxx на форуме   Ответить с цитированием
Старый Вчера, 18:26   #13
artemavd
Модератор
Заслуженный модератор
 
Регистрация: 05.06.2008
Адрес: г.Иркутск
Сообщений: 4,179
Репутация: 837
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
без закрытия программы некак.! На пример есть на одну .bpl несколько форма - Edit-ов Button-и ... и.т.г и требуется менять код или вносить изменения, добавить что то...
1) надо перекомпилировать тот .bpl на Delphi и потом копировать его и переписать на другом ПК
2) .bpl может будет несколько в проекте и на каждом .bpl работаеть разние программист и если он НЕ будеть перекопилировать свой .bpl не увидить то изменение который он внедрил проекте....
3) его применяют компаный когда они нанимають программистов и у каждого программистов свой .bpl и он работаеть на него... потом кто там "старший программист" или как они себя называют Забирает его и подключаеть своего проекту ....
4) в общем нужное штука когда проект очень большой....
-- Когда то: 08.01.2015 мне тоже пришлось разбираться начиналь постит на форуме https://www.programmersforum.ru/showthread.php?t=271436
artemavd Удачного и успешного вам рабочего дня
Благодарю за информацию! Приму к сведению.
А такой вопрос, наверно, один из последних.
Как мне обратиться к глобальным переменным формы основного приложения, из которого была открыта форма, которая находится в BPL?
То есть, когда я загрузил свой BPL и открылась из него форма, то как мне обратиться к глобальным переменным, которые находятся в главной программе?
__________________
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума   Ответить с цитированием
Старый Сегодня, 00:53   #14
xxbesoxx
Профессионал
 
Аватар для xxbesoxx
 
Регистрация: 10.08.2010
Адрес: Грузия Рустави
Сообщений: 1,333
Репутация: 719
Отправить сообщение для xxbesoxx с помощью Yahoo
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
То есть, когда я загрузил свой BPL и открылась из него форма, то как мне обратиться к глобальным переменным, которые находятся в главной программе?
Если форм-и находится на одну BPL то просто надо подключить тот модуль где объявлен переменное чтобы его применять на другом форме.
Изображения
Тип файла: jpg P_1.jpg (119.7 Кб, 3 просмотров)
Тип файла: jpg P_2.jpg (123.8 Кб, 3 просмотров)
Тип файла: jpg P_3.jpg (120.1 Кб, 2 просмотров)
Тип файла: jpg P_4.jpg (106.5 Кб, 2 просмотров)
__________________
E_MAIL: rijgvina7@yahoo.com
xxbesoxx на форуме   Ответить с цитированием
Старый Сегодня, 07:39   #15
artemavd
Модератор
Заслуженный модератор
 
Регистрация: 05.06.2008
Адрес: г.Иркутск
Сообщений: 4,179
Репутация: 837
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
Если форм-и находится на одну BPL то просто надо подключить тот модуль где объявлен переменное чтобы его применять на другом форме.
Не, я, наверное, не так объяснил. Сейчас попробую ещё раз. Смотрите. Дело в том, что у меня когда на кнопку нажимаешь, в главной программе, то грузится bpl с формами и т.п. составом. В главной программе у меня есть есть модуль с глобальным переменными, которые доступны через DataModule.<Имя глобальной переменной> всей главной программе. Так вот, когда мой bpl с формами загружен, то мне нужно, чтобы эти формы, хранящиеся в bpl, тоже имели доступ к глобальным переменным главной программы через DataModule.<Имя глобальной переменной>. Так понятнее? Представьте, что в основной программе у меня есть некая с роковая переменная и мне нужно передать (или получить) значение этой с роковой переменной в форме, которая открылась из bpl. Без прописывания на этапе разработки главной программы в разделе uses имена форм, которые хранятся в bpl
__________________
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума   Ответить с цитированием
Старый Сегодня, 09:02   #16
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,875
Репутация: 2195
По умолчанию

1. чисто Delphi
передать BPL функцию определения констант-настроек.

Код:

function GetNastr: integer;//TGlobalNastr;....   
function GetNastr(namstrname: string): string;
function GetNastrText: string;

bpl.setfunc_nastr(mainproc.GetNastr);

и ЕЕ использование внутри BPL
Код:

type
  TfuncGetNastr = function: integer; //описание соотв. процедурного типа
var
  GetNastr: TfuncGetNastr;
  
procedure SetNastr(f: TfuncGetNastr);
begin
  GetNastr:=f;
end;

procedure XXXX;
begin
...
  myglobnastr:=GetNastr;
...
end;

2. все тоже только вместо процедурного типа интерфейс.

3. все тоже но ПЕРЕДАВАТЬ какой-то известный объект.
известен bpl может быть объект с абстрактными методами, но
передаваться должен объект с переопределенными (имеющими реализацию).
по сути тот же интефейс.

использовать общие глобальные объекты
Application
Forms
DataModules
для обнаружения объекта хранящего настройки
Цитата:
В главной программе у меня есть есть модуль с глобальным переменными, которые доступны через DataModule.
и считывания
Код:

if DataModules.<Items>[j] is TDataModuleGlobalNastr then 
dmnastr:=DataModules.<Items>[j] as TDataModuleGlobalNastr

<Items> = свойство DataModules отвечающее за перечисление имеющихся (созданных) объектов во время РАБОТЫ программы.
__________________
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось artemavd; Сегодня в 13:18.
evg_m вне форума   Ответить с цитированием
Старый Сегодня, 12:20   #17
xxbesoxx
Профессионал
 
Аватар для xxbesoxx
 
Регистрация: 10.08.2010
Адрес: Грузия Рустави
Сообщений: 1,333
Репутация: 719
Отправить сообщение для xxbesoxx с помощью Yahoo
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Не, я, наверное, не так объяснил. Сейчас попробую ещё раз. Смотрите. Дело в том, что у меня когда на кнопку нажимаешь, в главной программе, то грузится bpl с формами и т.п. составом. В главной программе у меня есть есть модуль с глобальным переменными, которые доступны через DataModule.<Имя глобальной переменной> всей главной программе. Так вот, когда мой bpl с формами загружен, то мне нужно, чтобы эти формы, хранящиеся в bpl, тоже имели доступ к глобальным переменным главной программы через DataModule.<Имя глобальной переменной>. Так понятнее?
Вопрос понятно.! Я его не разобрался. Вот здесь конца теме https://edn.embarcadero.com/article/27178 объяснять как это делать...
__________________
E_MAIL: rijgvina7@yahoo.com
xxbesoxx на форуме   Ответить с цитированием
Старый Сегодня, 13:31   #18
artemavd
Модератор
Заслуженный модератор
 
Регистрация: 05.06.2008
Адрес: г.Иркутск
Сообщений: 4,179
Репутация: 837
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
1. чисто Delphi
передать BPL функцию определения констант-настроек.

Код:

function GetNastr: integer;//TGlobalNastr;....   
function GetNastr(namstrname: string): string;
function GetNastrText: string;

bpl.setfunc_nastr(mainproc.GetNastr);

и ЕЕ использование внутри BPL
Код:

type
  TfuncGetNastr = function: integer; //описание соотв. процедурного типа
var
  GetNastr: TfuncGetNastr;
  
procedure SetNastr(f: TfuncGetNastr);
begin
  GetNastr:=f;
end;

procedure XXXX;
begin
...
  myglobnastr:=GetNastr;
...
end;

2. все тоже только вместо процедурного типа интерфейс.

3. все тоже но ПЕРЕДАВАТЬ какой-то известный объект.
известен bpl может быть объект с абстрактными методами, но
передаваться должен объект с переопределенными (имеющими реализацию).
по сути тот же интефейс.

использовать общие глобальные объекты
Application
Forms
DataModules
для обнаружения объекта хранящего настройки

и считывания
Код:

if DataModules.<Items>[j] is TDataModuleGlobalNastr then 
dmnastr:=DataModules.<Items>[j] as TDataModuleGlobalNastr

<Items> = свойство DataModules отвечающее за перечисление имеющихся (созданных) объектов во время РАБОТЫ программы.
Как-то сложно...Без примера мне сложно будет понять, конечно...((

Можете примерчик тестовый кинуть? Я по нему пойму. Я думал, что это просто можно было сделать: загрузить BPL, вызвать из него форму, которая бы получила значение из DataModule основной программы.

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
Если форм-и находится на одну BPL то просто надо подключить тот модуль где объявлен переменное чтобы его применять на другом форме.
Мне нужно, чтобы, если смотреть Ваш пример, Unit2 получало значения не только с BPL, а с самого главного приложения, которое загрузило эту саму BPL. Ведь я же создаю через GetClass форму из BPL, вот, при этом мне надо передать некое глобальное значение из главной программы в форму, в этой только что загруженной BPL.
__________________
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; Сегодня в 17:52.
artemavd вне форума   Ответить с цитированием
Старый Сегодня, 22:43   #19
xxbesoxx
Профессионал
 
Аватар для xxbesoxx
 
Регистрация: 10.08.2010
Адрес: Грузия Рустави
Сообщений: 1,333
Репутация: 719
Отправить сообщение для xxbesoxx с помощью Yahoo
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Мне нужно, чтобы, если смотреть Ваш пример, Unit2 получало значения не только с BPL, а с самого главного приложения, которое загрузило эту саму BPL.
Смотрите как всё просто так получается и работает.
Изображения
Тип файла: jpg 1_.jpg (122.0 Кб, 1 просмотров)
Тип файла: jpg 2.jpg (120.2 Кб, 1 просмотров)
Тип файла: jpg 3.jpg (121.7 Кб, 1 просмотров)
Тип файла: jpg 4.jpg (123.0 Кб, 1 просмотров)
Тип файла: jpg 5.jpg (120.4 Кб, 0 просмотров)
Тип файла: jpg 6.jpg (123.6 Кб, 0 просмотров)
Тип файла: jpg 7.jpg (120.1 Кб, 0 просмотров)
Тип файла: jpg 8.jpg (114.5 Кб, 0 просмотров)
Тип файла: jpg 9.jpg (111.3 Кб, 0 просмотров)
__________________
E_MAIL: rijgvina7@yahoo.com
xxbesoxx на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка функции из dll, как победить RunTime Winexcel Общие вопросы Delphi 4 01.07.2014 13:40
Доступ к переменным Aleksandr_59 Общие вопросы Delphi 10 13.04.2012 12:57
Вопрос по переменным ronston Общие вопросы C/C++ 6 06.10.2010 10:27
Runtime runtime = Runtime.getRuntime(); Pti44ka Общие вопросы по Java, Java SE, Kotlin 1 22.11.2009 11:45
Доступ к переменным RealSHELS Общие вопросы Delphi 4 15.06.2008 13:14


23:16.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru