четверг, 5 мая 2011 г.

Редактор для создания сайтов (HTML+CSS+JavaScript; PHP+MySQL) часть1. Создание вкладок

 приступим к процессу написания программы.
сначала создадим новый проект , сохраним его, и приступим к размещению элементов, разместим на нем из стандартной палитры компонентов:
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;

В следующий раз напишу как динамически создавать на вкладке компоненты и доработаем событие закрытия вкладки и документа на нем.

Исходники на эту запись

Комментариев нет:

Отправить комментарий