![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не получается вызвать процедуру! [D7, WinXP]
frEE)styler © (2006-01-03 18:11:00)вот такая процедура:
procedure TForm1.XPButton11MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
point:Tpoint;
a: array of tmenuitem;
i:integer;
begin
getcursorpos(point);
setlength(a,entries);
popupmenu2.Items.Clear;
for i:=0 to entries-1 do
begin
a[i]:=tmenuitem.Create(self);
a[i].Caption:=entry[i+1].szEntryName;
a[i].OnClick:= myclick(sender,i);
popupmenu2.Items.Add(a[i]);
end;
popupmenu2.Popup(point.x,point.y);
end;
и процедура MyCkick
procedure TForm1.MyClick(Sender: TObject; i:integer);
begin
........
end;
подскажите как мне передать параметр в процедуру Myclick??
так как я делаю не получается...вот такая ошибка:
Incompatible types: 'TNotifyEvent' and 'procedure, untyped pointer or untyped parameter'
Virgo_Style (2006-01-04 21:33:00) [1]Скорее всего по ссылке в [1] написано именно это, но все же - можно присвоить
a[i].Tag, а потом в MyClick смотреть(sender as TComponent).Tag
TStas (2006-01-04 21:06:00) [2]Компилятор не придирается, а по делу говорит.
type TNotifyEvent procedure(Sender: TObject); //Один параметр TObject и принадлежит объекту
MyClick(Sender: TObject; i:integer); //Два параметра, объекту тоже принадлежит/
Типы у них разные, а свойство OnClick: TNotifyEvent
Чтобы решить проблему, надо убрать у процедуры второй параметр.
Гаврила (2006-01-04 02:16:00) [3]не, так тоже не пиши
Гаврила (2006-01-04 02:11:00) [4]то есть ты так не пиши
ты по другому пиши ))))
параметр второй убери для начала
Гаврила (2006-01-04 02:10:00) [5]Так и пиши
MyClick(nil, 0)
Leonid Troyanovsky (2006-01-03 18:28:00) [6]
> frEE)styler (03.01.06 18:11)
> подскажите как мне передать параметр в процедуру Myclick?
http://groups.google.com/group/fido7.ru.delphi.chainik/msg/61a25df4f567f5e5
--
Regards, LVT.