Главная страница
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.48 MB
Время: 0.033 c
1-1174368333
Fin
2007-03-20 08:25
2007.05.20
Формирование отчёта в FastReport


2-1177659221
Мансур
2007-04-27 11:33
2007.05.20
Построение графиков средствами Delphi 7


15-1177342559
фонк
2007-04-23 19:35
2007.05.20
А можно ли тут найти все ветки, созданные одним автором?


1-1173421896
zap8
2007-03-09 09:31
2007.05.20
Как осуществить DragDrop ссылки из Internet Explorer


2-1177591748
CCili
2007-04-26 16:49
2007.05.20
Как модифицировать код, чтобы письма шли с определенного ящика?