Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Очень простой вопрос. [D6, WinXP]


coder-lamer ©   (2003-01-07 01:36:00) 

Как в runtime указать процедуру которая должна выполняться по событию компонента?


Song   (2003-01-07 09:43:00) [1]

2diks © (07.01.03 05:57)
ToAscII() или вручную


DJ_Sedoy   (2003-01-07 07:34:00) [2]

Черт... класс конечно от TObject - не совсем корректно.
(Это уже для последователей, кому подобное надо будет)


diks   (2003-01-07 05:57:00) [3]

Ну ответъте пожалуйста:
У меня 2 формы хочу чтобы:
вводишь yjc в первую
нажимаешь кнопку
во второй появлялось слово нос
помогите пожалуйста что то вроде декодера заранее БЛАГОДАРЕН


coder-lamer   (2003-01-07 04:45:00) [4]

Нет смысла так как все уже заработало. Спасибо за идею.


DJ_Sedoy   (2003-01-07 04:34:00) [5]

А зачем обязательно класс с этим методом должен быть визульным?
Сделай Unit2 (3,4 и т.п.)
а там с чистой совестью пиши:

Type TMyClass = class(TObject)
procedure MyNotify(Sender: TObject);
....................
end;

Var MyClass: TMyClass;

implementation

procedure TMyClass.MyNotify(Sender: TObject);
Begin
....
end;


Вот у тебя и метод класса. Как раз он и давал ошибку - несовместимые типы - процедура и метод класса.


coder-lamer   (2003-01-07 04:16:00) [6]

Блин а ведь написал так @Comp.OnEvent := @MyProc и сработало :) странно как бессмыслица какая-то.
Большое Спасибо!


coder-lamer   (2003-01-07 04:14:00) [7]

2Dakis: только по идее надо было написать Comp.OnEvent := @MyProc, но это тоже не проходит!


Dakis   (2003-01-07 04:10:00) [8]

Укажи адрес, типа @Comp.OnEvent := @MyProc


coder-lamer   (2003-01-07 04:10:00) [9]

Да это итак знаю, только толку все равно нет! Я и процедуру с такими параметрами обьявлял и присваивать свойству пробовал, вообще баста и все! :(


atmospheric   (2003-01-07 03:56:00) [10]

а ты создай этот компонет визуальн (те брось его на форму), потов обжект енспекторе, щелкни тебя интересующие событие, и посмотри какие переменные передаются процедуре обрабатывающие это собщение
- procedure OnClick(Sender: TObject; Button: TButonns.... итд);


coder-lamer   (2003-01-07 03:49:00) [11]

Не совместимые типы указатель на метод и процедура :(
То есть надо что-то хитро указывать, а как я не знаю :(


coder-lamer   (2003-01-07 03:45:00) [12]

Да если бы все было так просто, я бы и не стал такой вопрос задавать я так и делаю в общих чертах:
Component.OnEvent := MyEvent;
На что получаю ошибку
[Error]Incompatible types: "method pointer and regular procedure"


atmospheric   (2003-01-07 03:05:00) [13]

где MyEvent какая-то процедура.


atmospheric   (2003-01-07 03:04:00) [14]

да разницы то нет все равно...
Component.OnEvent := MyEvent;


coder-lamer   (2003-01-07 02:54:00) [15]

А нет у меня формы то, вот в чем загвоздка.


atmospheric   (2003-01-07 02:48:00) [16]

ну просто в коде описываешь процедуру к примеру

procedure TForm1.MyClic(Sender: TObject);
begin
DoSomeThing();
end;

ну еще эту процедуру надо описать в самом начале там и где все процудуры
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure MyClic(Sender: TObject);
end;

а года создаещь компоненту то -
MyButton := TButton.Create(Form1);
MyButton.Parent(Form1);
MyButton.OnClick := MyClick;


coder-lamer   (2003-01-07 02:41:00) [17]

2KilkennyCat: Обясняю, форум был создан для поддержки начинающих, и проффесиональных программистов, здесь принято отвечать на вопросы, ты отвечаешь - тебе отвечают, помогают ... Это я так для "особо умных".
А что такое Delphi я знаю! На паскале пишу уже больше 3-х, а на Delphi ну всего не-ско месяцев и мне никогда в RunTime"е не приходилось показывать компоненту какую процедуру ему использовать! Ну вот так получилось, ну извини ты, что я такой тупой и что я тебя в форуме отвлек от гораздо боолее важного вопроса "Спящий режим" или "Как сделать чтобы окно "вылазило" наверх по событию?"!!!


KilkennyCat   (2003-01-07 02:25:00) [18]

Нда... А еще скажите мне, что такое Делфи, а то я тут диск нашел, не знаю, ставить, не ставить...


Наверх

Титульная страница Поиск, карта сайта Написать письмо