![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Ребята, делфи пользуюсь давно, но как продвинутый пользователь. Недавно столкнулся с задачей сделать MDI DLL, программа была написана без модулей.. Скачал в интернете пример MDI DLL окна, прочитал данную тему, но ничего толком не понял в каком месте объявлять переменные, чтобы они были доступны двусторонне.. Стоит задача передать переменные из главной формы, чтобы изменить их и уже при закрытии MDI формы изменённые значения использовать в главной форме, помогите пожалуйста! Чувствую, моиз знаний недостаточно для этого, нервничать уже начал (
Если кому не сложно - измените пример по ссылке, пожалуйста! Нужно передать и принять в главной форме несколько переменных. Огромное спасибо заранее тому, кто поможет! Вот здесь скачал пример MDI DLL |
|
#2
|
|||
|
|||
|
или лучше использовать bpl пакет? кто-нибудь имеет в наличии рабочий пример?
|
|
#3
|
|||
|
|||
|
нашёл пример bpl, решил его использовать
http://www.delphikingdom.com/asp/vie...?catalogid=274 адаптирую свой старый юнит с формой, но вылетает ошибка: Method 'Exporter Name' not found in base class.. Где ошибка? Код:
unit FieldEdit;
interface
uses
Windows,
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
StdCtrls,
DataModule;
type
TFieldEditForm = class(TForm)
FieldEdit: TEdit;
Label3: TLabel;
AddButton: TButton;
CancelButton: TButton;
EditButton: TButton;
procedure AddButtonClick(Sender: TObject);
procedure CancelButtonClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
public
class function ExporterName: string; override;
end;
var
FieldEditForm: TFieldEditForm;
InputFieldKey, InputFieldName, OutputFieldKey, OutputFieldName:string;
implementation
uses
UClassManager;
{$R *.dfm}
class function TFieldEditForm.ExporterName: string;
begin
Result := 'Редактирование месторождения';
end;
procedure TFieldEditForm.AddButtonClick(Sender: TObject);
begin
end;
procedure TFieldEditForm.FormShow(Sender: TObject);
end;
procedure TFieldEditForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
end;
{ ============================================= }
initialization
{ ============================================= }
ClassManager.Add(TFieldEditForm);
{ ============================================= }
finalization
{ ============================================= }
ClassManager.Remove(TFieldEditForm);
end.Код:
{ ============================================= }
unit UClassManager;
{ ============================================= }
{ ============================================= }
interface
{ ============================================= }
uses
Classes;
type
TClassManager = class(TList);
function ClassManager: TClassManager;
{ ============================================= }
implementation
{ ============================================= }
var
Manager: TClassManager;
function ClassManager: TClassManager;
begin
Result := Manager;
end;
{ ============================================= }
initialization
{ ============================================= }
Manager := TClassManager.Create;
{ ============================================= }
finalization
{ ============================================= }
Manager.Free;
end{ ========================================== }.Последний раз редактировалось sorockinalex, 17.08.2012 в 21:12. |
|
#4
|
|||
|
|||
|
понял в чём дело..
другой пакет использует того же наследника класса... но при попытке добавить в секцию requires ту же DCU, содержащую описания этих классов возникает ошибка "Another File with the same nase name is already on the search path" Как избежать дублирования? Иначе пакет в исполняемом файле отказывается загружатся с ошибкой: "Cannot load the package. It contains unit which is also contained in package..." Короче, он не может загрузить пакет, так как он содержит юнит, который уже загружен в другом пакете... Помогите пожалуйста, друзья! |
|
#5
|
|||
|
|||
|
блин, вот я туплю... разобрался... удалил путь поиска в Delphi\Projects\BPL )))
|
|
#6
|
||||
|
||||
театр одного актера ![]() |
|
#7
|
|||
|
|||
|
ребята, помогите, пожалуйста! не силён в этом, простите уж.. мучаюсь, мучаюсь, никак не разберусь... как заставить форму мою FieldEditForm открываться при нажатии кнопки FieldEditForm на главной формею.. Никак не пойму устройство классов в примере...
http://zalil.ru/33688750 |
|
#8
|
|||
|
|||
|
Цитата:
![]() |