![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как оповестить главную форму? [D5, D6, Win95/98, Win2k]
UserL © (2002-02-20 07:15:00)На форме находится главный фрэйм. В этот фрэйм закинул TChart и TScrollBox. На TScrollBox`e создаю динамически объект TFrame в котором находится Shape, StaticText и PopupMenu. В PopupMenu пункт УДАЛИТЬ при нажатии на который удаляется динамически созданный объект. Как сообщить главному Фрейму, что объект был удален?
Набережных С. (2002-02-26 14:58:00) [1]Ну какой тут примерчик? Конструкция
A.FreeNotification(B)заносит объектBв список нотификации объектаA, а объектA- в список объектаB.
В результате при уничтожении объектаAбудет вызван методB.Notification(A, opRemove)и наоборот. Метод
Notificationвиртуальный, перекрыв его можно соответственно отреагировать, например:
procedure B.Notification(AComponent:TComponent; Operation:TOperation)
if (A = MyRef)and(Operation = opRemove) then
MyRef:=nil;
UserL (2002-02-26 05:33:00) [2]А как эти методы работают?
Если можно примерчик приведите...
Набережных С. (2002-02-25 16:50:00) [3]Посмотри методы FreeNotification и Notification.
UserL (2002-02-25 06:46:00) [4]Я удаляю TNameColorпо его PopupMenu. А в PopupMenu вызываю его метод Destroy. Как тогда мне сказать родителю, что компонент удален?
-=CrazyFish=- (2002-02-20 13:13:00) [5]Задавай у каждого объекта TNameColor уникальный номер в свойстве Tag. В метод главного фрэйма, который будет удалять нужный объект передавай его Tag. Зная Таg объекта его можно найти и удалить.
UserL (2002-02-20 12:50:00) [6]А как???
Я его создаю так:
Procedure CreateColorObg;
Var
ListColor: TList;
Begin
...
NamesColor:=TNameColor.Create(ScrollBox1);
ListColor.Add(NamesColor);
With NamesColor Do
Begin
Parent:=ScrollBox1;
Height:=19;
Width:=ClientWidth-2;
Left:=0;
Top:=Height*(ListColor.Count-1);
BevelInner:=bvNone;
BevelOuter:=bvNone;
ColorSet:=ColorNew;
NameSet:=NameTi;
Name:="NamesColor"+IntToStr(ListColor.Count);
End;
...
А TNameColor = class(TFrame)
...
-=CrazyFish=- (2002-02-20 12:24:00) [7]А что, если для уничтожения объекта вызывать метод главного фрейма, в котором это удаление будет прописано. Тогда и проблем не будет.
UserL (2002-02-20 11:58:00) [8]Есть ли вообще такая возможность, оповестить родителя об уничтожении предка?