Вниз
Скачать: CL | DM;

Как закрыть нужную форму?   Найти похожие ветки 

← →
sergeyst ©   (2007-05-02 14:21) [0]

Привет всем. Есть несколько различных 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 - я не знаю. Подскажите, плиз.


← →
iXT ©   (2007-05-02 14:36) [1]

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


← →
sergeyst ©   (2007-05-02 14:45) [2]

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) [3]


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

То есть?


← →
iXT ©   (2007-05-02 15:52) [4]

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


← →
sergeyst ©   (2007-05-02 15:54) [5]

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



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.028 c
15-1176990214
divisi
2007-04-19 17:43
2007.05.20
Розроботка Игор


15-1177077151
Real
2007-04-20 17:52
2007.05.20
Глюк формума


2-1177584697
Пока что юзер
2007-04-26 14:51
2007.05.20
Как запаковать файлы в arj c помощью Делфи?


15-1176963350
Pazitron_Brain
2007-04-19 10:15
2007.05.20
Ищется память для ноутбука


2-1178297363
Клик
2007-05-04 20:49
2007.05.20
БД




   Наверх