Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: 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 вся ветка

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.04 c
15-1176825502
Layner
2007-04-17 19:58
2007.05.20
Посоветуйте тулз для разрезки видео файла MPEG4 почастям


6-1163677053
dima_shapkin
2006-11-16 14:37
2007.05.20
IP


1-1174494493
VitAngel
2007-03-21 19:28
2007.05.20
Выделение строки в DBGrid


8-1157683616
aKirill.INFO
2006-09-08 06:46
2007.05.20
Немогу понять где косяк с OpenGL


2-1178270371
npu3pak
2007-05-04 13:19
2007.05.20
CheckListBox