приступим к процессу написания программы.
сначала создадим новый проект , сохраним его, и приступим к размещению элементов, разместим на нем из стандартной палитры компонентов:
PageControl, PopupMenu, MainMenu.
Теперь подредактируем свойства компонентов, начнем с MainMenu, с помощью него создадим верхнее меню пока только что бы его было видно, для этого достаточно сделать один пункт "Меню".
Компоненту PageControl зададим свойство Align=alClient, в свойство PopupMenu выберем PopupMenu1.
У компонента PopupMenu создадим два пункта : "Закрыть документ" и "Новый документ".
свойства name этих пунктов зададим соответственно "Закрыть документ"-deldoc, "Новый документ"-newdoc
Вид формы должен получиться примерно такой:
В поле переменных программы добавим несколько переменных:
tabs-это наши вкладки;
ndoc-счетчик наших документов;
получим вот такой вид области переменных программы;
var
Form1: TForm1;
tabs:TTabSheet;
ndoc:Integer;
Далее напишем обработку события при клике на пункт выпадающего меню "Новый документ":
procedure TForm1.newdocClick(Sender: TObject);
begin
ndoc:=ndoc+1;
tabs:=ttabsheet.Create(pagecontrol1);
tabs.PageControl:=pagecontrol1;
tabs.Caption:='Документ'+inttostr(ndoc);
end;
Запустим приложение, щелкнем левой кнопкой мыши и не чего не произойдет, это нормально.
Теперь точно такой же код разместим в событии создания формы.
procedure TForm1.FormCreate(Sender: TObject);
begin
ndoc:=ndoc+1;
tabs:=ttabsheet.Create(pagecontrol1);
tabs.PageControl:=pagecontrol1;
tabs.Caption:='Документ'+inttostr(ndoc);
end;
После этого снова запусти приложение и сделаем клик правой кнопки мыши, теперь у нас выпадающее меню появляется в любом месте клика по компоненту PageControl.
Теперь напишем обработку события закрытия документа:
procedure TForm1.deldocClick(Sender: TObject);
begin
tabs.PageControl.ActivePage.Free;
end;
В следующий раз напишу как динамически создавать на вкладке компоненты и доработаем событие закрытия вкладки и документа на нем.
Исходники на эту запись
Комментариев нет:
Отправить комментарий