Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.12;
Скачать: CL | DM;

Вниз

Создание объектов в dll и создание обработчиков для них.   Найти похожие ветки 

 
manefesto ©   (2006-01-13 15:59) [0]

Пытался создать в dll динамически объекты класса TButton и TLabel. И повешать на MyButton обработчик по которому менялось бы поле Caption  в MyLabel. Но проблему решить не смог. Обработчик не реагирует.

Код:

library Buttons;

uses
Forms, StdCtrls,Controls,Variants, Dialogs;

var  MyButton:TButton;
    MyLabel:TLabel;
{$R *.res}

procedure ButtonClick(sender:TObject);stdcall;
begin
MyLabel.Caption:="XXX";
end;

procedure CreateButtons(Pform:TForm);stdcall;
begin
  MyButton:=TButton.Create(pform);
  with MyButton do
  begin
      ParentFont:=false;
      Parent:=TWinControl(pForm);
      left:=10;
      top:=30;
      Caption:="Button";
      Height:=25;
      Width:=75;
      name:="Button1";
      @OnClick:=@ButtonClick;
  end;
  MyLabel:=TLabel.Create(pform);
  with MyLabel do
  begin
      ParentFont:=false;
      left:=100;
      top:=30;
      Height:=250;
      Width:=400;
      Caption:="Label";
      Parent:=TWinControl(pForm);
  end;
end;

exports
CreateButtons;

begin
end.


 
Reindeer Moss Eater ©   (2006-01-13 16:37) [1]

Замени
@OnClick:=@ButtonClick;
на
OnClick:=ButtonClick;

И сразу увидишь в чем ты неправ


 
Ega23 ©   (2006-01-13 17:07) [2]

procedure of object


 
manefesto ©   (2006-01-16 08:00) [3]

если бы все так было просто.
OnClick:=ButtonClick;
не прокатывает, выдает ошибку Incompatible types: "Calling convertions differ"

Да  и я думал что достаточно умные люди проверяют то что советует нежели голословно говорить. Тема не закрыта.


 
evvcom ©   (2006-01-16 10:02) [4]


> manefesto ©   (13.01.06 15:59)

У тебя здесь столько тараканов! Просто ужас!
1. OnClick: TNotifyEvent - совсем не регулярная процедура и тем более не stdcall.
2. В [1] тебе была дана подсказка, а не решение. "Calling convertions differ" должно было тебя натолкнуть на неоправданное применение stdcall. Ты хоть понимаешь что это и зачем?


 
Чапаев ©   (2006-01-16 10:02) [5]


> Да  и я думал что достаточно умные люди проверяют то что
> советует нежели голословно говорить

Достаточно умные люди внимательно читают хелп и понимают, в чём разница между procedure и procedure of object.



Страницы: 1 вся ветка

Текущий архив: 2006.02.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.047 c
2-1137957807
Сайбель Алексей
2006-01-22 22:23
2006.02.12
RichEdit style fsBold


2-1137798502
Ezorcist
2006-01-21 02:08
2006.02.12
Подкинте тему как юзать RSS?


15-1137997018
Ega23
2006-01-23 09:16
2006.02.12
И снова о сале


1-1137267609
Alex17
2006-01-14 22:40
2006.02.12
Как это выгледит в Дельфи


15-1137765344
вразлет
2006-01-20 16:55
2006.02.12
Пластиковые карточки на Укр@ине