![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TTreeView + event
Алексей Иванов © (2009-05-26 07:58:00)Добрый день, Мастера!
При попытке назначить, хотя скорее, при попытки выполнения процедуры, указанной в качестве события TTreeView.OnCollapsing вылетает ошибка: аксес виолэйшн. Не могу понять, что ему не нравится. Делаю так:
var
MyTV:TMyTreeView;
implementation
procedure OnColl(Sender: TObject; Node: TTreeNode;
var AllowCollapse: Boolean);
begin
Node.ImageIndex:=2;
end;
...
MyTV:=TMyTreeView.Create(Form1);
MyTV.Parent:=Form1;
@MyTV.OnCollapsing:=@OnColl; // Здесь все проходит гладко
Теперь если пытаемся сжать ветку, то происходит ошибка.
Пока писал свой вопрос - появилась мысль )))
Видимо в процедуре OnColl не передается параметр Node:TTreeNode.
Как в этом случае его правильно передать? И вообще не поняно как с этими eventam'и работать. Если предложите через глобальные переменные или, например, MyTV.Selected - не принимается, т.к. для чего все evevnt имеют типы типа Proc(Sender:TObject, ... , ..., ...), если их нельзя как-то автоматически передавать???
Прошу прощения, накипело.
Amoeba (2009-05-26 11:03:00) [1]А вот и ссылка на эту статью:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=342
KSergey (2009-05-26 10:32:00) [2]ааа, блин, я как всегда просмотрел половину :(
Автор, наберите в гугле "жизнь и смерть в режиме run-time" (прямо так, с кавычками) и почитайте эту статью с королевства.
Много вопросов отпадет.
Алексей Иванов (2009-05-26 08:50:00) [3]Ну вот так бы сразу!
Спасибо!
Сергей М. (2009-05-26 08:42:00) [4]
> Здесь все проходит гладко
Ребенок кричит-надрывается, мамкину сиську просит, а ему соску заткнули да еще и скочем примотали..
Жесть, но ассоциация самая что ни на есть прямая)
Сергей М. (2009-05-26 08:38:00) [5]
> OnCollapsing - это стандартное свойство TTreeView
Это не просто свойство. это свойство-событие.
А свойству-событию может быть присвоено значение типа процедурный методобъекта.
А ты что пытаешься присвоить ? Ты пытаешься присвоить отнюдь не метод, а регулярную процедуру.
Алексей Иванов (2009-05-26 08:06:00) [6]>Выделенное - зачем?
Дабы не было такого сообщения:
[Pascal Error] Unit1.pas(51): E2010 Incompatible types: 'TTVCollapsingEvent' and 'Pointer'
>и еще. Видимо ошибка внутри OnCollapsing возникает, но оно держится в секрете, почему?
Не понял, что значит в секете???
OnCollapsing - это стандартное свойство TTreeView
KSergey (2009-05-26 08:01:00) [7]> @ MyTV.OnCollapsing:=@OnColl;
Выделенное - зачем?
и еще. Видимо ошибка внутри OnCollapsing возникает, но оно держится в секрете, почему?