Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];

Вниз

Создание объектов в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.041 c
15-1138080984
Lancelot
2006-01-24 08:36
2006.02.12
Коды ERRORLEVEL для команд MS-DOS


3-1134258885
orbal
2005-12-11 02:54
2006.02.12
DBGridEh - PickList


2-1137865704
ALex222
2006-01-21 20:48
2006.02.12
люди добрые помогите начинающему!!!


1-1137284109
stack
2006-01-15 03:15
2006.02.12
Есть ли компоненты для экспорта/импорта в Oracle


2-1138006484
ИвашкаИзПросквашки
2006-01-23 11:54
2006.02.12
Timer в Сервисе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский