![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Очень простой вопрос. [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]Нда... А еще скажите мне, что такое Делфи, а то я тут диск нашел, не знаю, ставить, не ставить...