Вниз
Скачать: 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.027 c
2-1178261833
Doom-2
2007-05-04 10:57
2007.05.20
существует у Flash-ки и ZIV-а какой-нибудь "ID"?


15-1177055966
Rule
2007-04-20 11:59
2007.05.20
библиотека для работы с XML через SQL


2-1178200691
RomanLN
2007-05-03 17:58
2007.05.20
Как присвоить цвет Edit программно


1-1174826542
Midnighter
2007-03-25 16:42
2007.05.20
Получить указатель на объект из интерфейса


15-1177168718
Pazitron_Brain
2007-04-21 19:18
2007.05.20
Как создать swap файл при загрузке установшика netbsd?




   Наверх