Вниз
Скачать: 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
8-1154874180
.ruslan
2006-08-06 18:23
2007.05.20
Тень от формы


8-1158083361
DelphiN#1
2006-09-12 21:49
2007.05.20
Bitmap


15-1176804812
Kolan
2007-04-17 14:13
2007.05.20
А что это с rsdn — негрузится че-то&#133


11-1159527274
Юрий Шабанов
2006-09-29 14:54
2007.05.20
Delphi with KOL only.


2-1178295500
Mihail07
2007-05-04 20:18
2007.05.20
TSaveDialog, TRichEdit




   Наверх