Главная страница
    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.45 MB
Время: 0.04 c
15-1137501913
Yegorchic
2006-01-17 15:45
2006.02.12
Сотовый с ИК-портом...


15-1138229268
GanibalLector
2006-01-26 01:47
2006.02.12
rfc2812


15-1137679046
han_malign
2006-01-19 16:57
2006.02.12
Россия пошатнулась под ударами морозов


15-1137973294
maximsms
2006-01-23 02:41
2006.02.12
Помогите отгадать мелодию


2-1138268930
VitV
2006-01-26 12:48
2006.02.12
смена разрешени экрана





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский