Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2007, 10:22   #1
EA_Sports
Новичок
Джуниор
 
Регистрация: 10.03.2007
Сообщений: 2
Вопрос Назначение события

Привет всем. Не знаю, возможно такой вопрос уже задавали, но нет времени на поиск, вобщем суть такова:
Я создаю компонент(Батон), мне нужно на событие онклик присвоить ему ранее описанную процедуру из моего класса. Как это сделать? У меня почему-то категорически отказыается это делать. Код выглядит след. образом:

TRaspisanie = class
public
NewItem:array[1..6,1..8] of TEdit;
But: array[1..6] of TButton;
ItemCount:array[1..6] of byte;
Day : byte;
procedure AddItem(Day : byte; Roditel : byte);
end; // Вот это есть класс

procedure TRaspisanie.AddItem(Day : byte; Roditel : byte);
begin
if Rasp.ItemCount[Day] < 6 then
begin
Rasp.NewItem[Rasp.Day,Rasp.ItemCount[Rasp.Day]] := TEdit.Create(Form1);
Rasp.NewItem[Rasp.Day,Rasp.ItemCount[Rasp.Day]].Left := Rasp.But[Roditel].Left - Rasp.But[Roditel].Width;
Rasp.NewItem[Rasp.Day,Rasp.ItemCount[Rasp.Day]].Top := Rasp.But[Roditel].Top;
Rasp.NewItem[Rasp.Day,Rasp.ItemCount[Rasp.Day]].Visible := true;
Rasp.NewItem[Rasp.Day,Rasp.ItemCount[Rasp.Day]].Parent := Form1;
Rasp.NewItem[Rasp.Day,Rasp.ItemCount[Rasp.Day]].Width := Rasp.But[Roditel].Width * 3;
Rasp.NewItem[Rasp.Day,Rasp.ItemCount[Rasp.Day]].Hint := Rasp.NewItem[Rasp.Day,Rasp.ItemCount[Rasp.Day]].Text;
Rasp.NewItem[Rasp.Day,Rasp.ItemCount[Rasp.Day]].ShowHint := true;
Rasp.But[Roditel].Top := Rasp.NewItem[Rasp.Day,Rasp.ItemCount[Rasp.Day]].Top + Rasp.NewItem[Rasp.Day,Rasp.ItemCount[Rasp.Day]].Height;
Rasp.ItemCount[Rasp.Day] := Rasp.ItemCount[Rasp.Day] + 1;
end;
end; /// это есть та процедура, которую надо присвоить событию (на код не смотрите, он не доделан(у этой процедуры), но суть не в этом)


procedure TForm1.FormCreate(Sender: TObject);
var i:byte;
x : integer;
begin
Rasp := TRaspisanie.Create;
x := 32;
for i:= 1 to 6 do
begin
Rasp.But[i] := TButton.Create(Form1);
if i = 1 then
Rasp.But[i].Left := x
else
Rasp.But[i].Left := Rasp.But[i-1].Left + 80;
Rasp.But[i].Top := 50;
Rasp.But[i].Parent := Form1;
Rasp.But[i].Visible := true;
Rasp.But[i].Width := Rasp.But[i].Height;
Rasp.But[i].Caption := '+';
Rasp.But[i].Tag := i;
Rasp.But[i].OnClick := ?????; /// что должно прописываться здесь? вместо знаков "?????", Rasp.AddItem(Day : byte; Roditel : byte) не катит.
Rasp.ItemCount[i] := 1;
end;
end;
EA_Sports вне форума Ответить с цитированием
Старый 11.03.2007, 00:42   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Rasp.AddItem(Day : byte; Roditel : byte) не катит.
Правильно. А вот Rasp.AddItem(Sender: TObject; Day : byte; Roditel : byte) "покатит".
mihali4 вне форума Ответить с цитированием
Старый 11.03.2007, 00:45   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

а OnClick какой тип имеет ? :D должен быть пусть там TOnClick = procedure(Day : byte; Roditel : byte) of object; вот так надо
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
События для DBGrid Максим_Леонидович Компоненты Delphi 1 08.08.2008 22:43
Назначение прав пользователя Seqular Безопасность, Шифрование 1 04.08.2007 16:48
Перехват события juden Общие вопросы Delphi 5 23.05.2007 12:21
Обработчик события... Flash_ Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 12.03.2007 21:24
назначение модераторов Alar О форуме и сайтах клуба 25 08.12.2006 18:30