Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как закрыть нужную форму?


sergeyst ©   (2007-05-02 14:21:00) 

Привет всем. Есть несколько различных MDI-форм. При создании любой из них на тулбаре в главной форме создается кнопка, при нажатии на которую отображается соотв. окно. Хочу сделать всплывающее меню для этой кнопки с пунктом "Закрыть", но не знаю как сказать кнопке какая форма ей нужна.

Это создание кнопки
procedure CreatePopupForButton(Sender: TSpeedButton; Form: TForm);
var
 mi: TMenuItem;
 pm: TPopupMenu;
begin
   pm := TPopupMenu.Create(Sender);
   Sender.PopupMenu := pm;
   mi := TMenuItem.Create(pm);
   mi.Caption := 'Закрыть';
   mi.OnClick := CloseF;
   pm.Items.Add(mi);
Что здесь можно сделать с Form - я не знаю. Подскажите, плиз.


sergeyst   (2007-05-02 15:54:00) [1]

Ой, MyObject был классом, а не объектом. Теперь работает. Спасибо.


iXT   (2007-05-02 15:52:00) [2]

Т.Е. я не увидел, как ты создаешь батоны, но это уже второе. Первое, определись, как у тебя определенный батон соответствует определенной форме


sergeyst   (2007-05-02 14:45:00) [3]

mi.Tag := Integer(Form); - это связал

procedure CloseF(Sender: TObject);
var
 i: Integer;
begin
 for i := 0 to Pred(MainForm.MDIChildCount) do
   if (Sender as TMenuItem).Tag = Integer(MainForm.MDIChildren[i]) then
   begin
     MainForm.MDIChildren[i].Close;
     Exit;
   end;
end;

это закрыл, но компилятор говорит:
[Error] LibraryUnit.pas(528): Incompatible types: 'method pointer and regular procedure'
, а если сделать
...
mi.OnClick = MyObject.CloseF;
...
procedure MyObject.CloseF..., то:
Incompatible types: 'TNotifyEvent' and 'Procedure'
Чего надо изменить?


sergeyst   (2007-05-02 14:45:00) [4]


> И как они у тебя описанны.

То есть?


iXT   (2007-05-02 14:36:00) [5]

Все зависит от того, как ты собрался связывать Окно и кнопку (логически). И как они у тебя описанны.


Наверх

Титульная страница Поиск, карта сайта Написать письмо