Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2011, 13:00   #1
medved6216
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 56
По умолчанию Использование процедуры в dll

Подскажите, как реализовать обработку события(процедуру) при нажатие кнопки в dll ? Вот код: создания формы и кнопки:
Код:
library MainForm;

uses
  SysUtils,
  Classes,
  Forms,
  sBitBtn,
  spanel;

{$R *.res}


function ShowForm : Integer; stdcall;
var
Form : TForm;
exitbtn : tsbitbtn;
begin
Form := TForm.Create(Application);
with form do
begin
caption := 'Desktop';
BorderStyle := bsNone;
FormStyle   := fsStayOnTop;
Left        := 0;
Top         := 0;
Height      := Screen.Height;
Width       := Screen.Width;
end;

exitbtn := TsBitBtn.Create(form);
with exitbtn do
begin
parent := form;
caption := 'exit';
top := 100;
left := 100;
onclick := exitbtn; // тут обработка нажатия
end;

Result := Form.ShowModal;
Form.Free;
end;
{Данная процедура не реализовывается}
procedure exitbtn(Sender: TObject); // как это реализовать
begin
form.close; // закрытие формы
end;

exports
ShowForm;

begin
end.
Подскажите как реализовать, чтобы при нажатии кнопки - форма закрывалась? При данном действии dll не компилируется.
medved6216 вне форума Ответить с цитированием
Старый 10.10.2011, 14:17   #2
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
Лампочка

Код:
library Project2;

uses
 ShareMem, //для строк
forms, unit1,
  Unit2 in 'Unit2.pas' {FUchPlan};//модуль с полнофункциональной формой

{$R *.res}

procedure ShowUchPlan; export;//экспортируемая функция
begin
 Application.CreateForm(TFUchPlan,FUchPlan);//создание формы из модуля Unit2
 FUchPlan.ShowModal;//модальный показ
end;

exports
ShowUchPlan;
end.
Вызов формы:
Код:
var
  Form1: TForm1;
       h:hwnd;
implementation

{$R *.dfm}

procedure ShowUchPlan; external 'project2.dll';//подключение функции показа формы

procedure TForm1.Button1Click(Sender: TObject);
begin
 h:=LoadLibrary('project2.dll');//загрузка библиотеки
 ShowUchPlan;//показ формы
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FreeLibrary(h);//выгрузка библиотеки
end;
Начало Unit2;:
Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, Grids, StdCtrls, Menus, XPStyleActnCtrls,
  ActnList, ActnMan;

type
  TFUchPlan = class(TForm)
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 10.10.2011, 15:14   #3
medved6216
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 56
По умолчанию

xwicked, спасибо) Я вот тоже думал о такой реализации
medved6216 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование имени процедуры в качестве параметра другой процедуры Alexey355 Помощь студентам 1 23.04.2011 13:59
Использование asm процедуры в Delphi Alex1991 Общие вопросы Delphi 4 08.02.2011 12:50
Использование Dll xmaksimca Общие вопросы Delphi 0 16.05.2010 18:36
Использование dll Gromsky Общие вопросы C/C++ 1 10.02.2009 21:06