Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];




Вниз

Создание компонента в RunTime 


greenrul   (2002-02-25 19:27) [0]

Не хочет присваиваться процедурка - для нового объекта чтобы если случалось собылие OnPressed включалась процедура RunSomething.

Вообщем вот цитата из кода

private
{ Private declarations }
procedure RunSomething(path:string);
public
{ Public declarations }
procedure NewHotKey(key,action:string);
end;
var
Form1: TForm1;
Binds:array[1..5] of TARHotKey;
i:Integer;

implementation

{$R *.DFM}

procedure TForm1.RunSomething(path:string);
begin
{a}
end;


procedure TForm1.NewHotKey(key,action:string);
begin
binds[i]:=TARHotKey.create(Self);
binds[i].OnPressed:=RunSomething(Form1.caption);
//компилятор НЕ позваоляет это сделать
end;


пробовал
procedure Form1.NewHotKey
procedure NewHotKey
и процедурку из privat"a убирал

однако в вашем FAQ"e - http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988625051&n=19 все именно так и описано 8(



Sasha9   (2002-02-25 19:31) [1]

может список параметров не тот
а какую ошибку выдаёт?



McSimm   (2002-02-25 19:33) [2]

:)
в нашем FAQ`e написано совсем не так :)

:= RunSomething; // Присвоит адрес процедуры
:= RunSomething(Form1.caption); // Попытается присвоить результат выполнения процедуры.

Разницу заметно?



greenrul   (2002-02-26 16:07) [3]

А как тогда присвоить процедуру, но передать ей параметр.

То есть у каждой компоненты есть СВОЯ процедурка - такая же как и у "родительной" - RunSomething но с "своим" параметром?



McSimm   (2002-02-26 17:05) [4]

Процедура одна для всех.
Параметр передается при вызове процедуры.
binds[i].OnPressed:=RunSomething;

Сам binds[i] в какой-то момент производит вызов, приблизительно так:
...
if Assigned(FOnPressed) then FOnPressed(параметры);
...
Вот в этом месте параметры и передаем.



Sasha9   (2002-02-26 19:09) [5]

сделать переменную-папраметр глобальной, тогдаей можно будет пользоваться в любой функции




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.037 c
6-43131           ThaDrot               2001-12-24 18:42  2002.03.14  
TCP-IP Info ?


1-43012           Reals                 2002-02-27 20:45  2002.03.14  
Как нарисовать на Рабочем столе, чтобы не стиралось...


6-43128           SemFLY                2001-12-26 22:02  2002.03.14  
Как вытащить символ из посланного сообщения ? TServerSocket - TClientCosket


3-42951           af                    2002-02-13 18:37  2002.03.14  
Возникла проблема - не могу сортировать записи


14-43175          ЕвгенийА              2002-01-31 00:57  2002.03.14  
Копирование