Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Урок 6 - Меню - как много в этом слове

Delphi , Технологии , KOL и MCK

Урок 6 - Меню - как много в этом слове

Ведущий раздела KOL и MCK: Анатолий aka XVeL
Автор: Борис Моренко
WEB-сайт: http://kol.mastak.ru

Полную версию библиотеки KOL и MCK можно скачать здесь.

Почти в любой программе есть меню. И у нас оно тоже будет.
Меню создается на объектах типа pMenu

function NewMenu( AParent: PControl; FirstCmd: Integer; const Template: array of PChar; aOnMenuItem: TOnMenuItem ): PMenu;

В AParent вы указываете к чему будет принадлежать меню. Если вы указали форму, то для нее это будет главное меню.

Template - это массив, состоящий из пунктов меню. В этих пунктах могут встречаться специальные символы. Вот их список:

Символ Значение
& подчеркивает следующий символ
+ галочка в меню
- разделитель между пунктами меню
( начало подменю
) конец подменю


Через aOnMenuItem указывается процедура, обрабатывающая выбранный пункт меню.

Описание некоторых свойств меню

Свойство Описание
ItemChecked[idx:integer]:boolean Ставит/убирает галочку на пункт меню с индексом idx
RadioCheck(idx:integer) Ставит радио-галочку на один из пунктов меню
Popup(x,y:integer); Вызывает меню на экран в позиции x,y
ItemText[idx:integer]:string Текст пункта меню с индексом idx
ItemEnabled[idx:integer]:boolean Включает/выключает пункт меню с индексом idx
ItemVisible[idx:integer]:boolean Показывать/не показывать пункт меню с индексом idx

Давайте добавим в наш редактор пару пунктов меню:

program Primer;

uses
 Windows,
 messages,
 KOL;

{$R *.RES}

var
  Form,
  PanTools,
  REdit,
  butOpen,
  butSave : PControl;
  mainMenu : pMenu;
  Dialog : pOpenSaveDialog;

procedure clikButOpenSave( Dummy : Pointer; Sender : PControl );
var
  title : string;
begin
  if sender = butOpen then
  begin
    Dialog.title := 'Открыть';
    Dialog.OpenDialog := TRUE;
    REdit.Clear;
  end
  else
  begin
    Dialog.title := 'Сохранить как...';
    Dialog.OpenDialog := FALSE;
  end;

  if Dialog.Execute then
  if sender = butOpen then
    REdit.RE_LoadFromFile(Dialog.Filename, reText, false)
  else
    REdit.RE_SaveToFile(Dialog.Filename, reText, false);
  form.StatusText[0] := PChar(Dialog.Filename);
end;

procedure ProcessingMenu ( Dummy : Pointer; Sender : pMenu; Item : Integer );
  //обработка пунктов меню
begin
  case Item of
    1: begin {NEW}
       REdit.Clear;
       form.StatusText[0] := '';
     end;
    2: clikButOpenSave(nil, butOpen); {Open}
    3: clikButOpenSave(nil, butSave); {Save As}
    4: Applet.Close; {Exit}
  end;{case}
end;

begin
  form := NewForm( Applet, 'Редактор' );
  panTools := NewPanel( Form, esRaised ).SetAlign( caTop );
  panTools.Height := 35 ;
  REdit := NewRichEdit( Form, [] ).SetAlign(caClient);
  butOpen := NewButton( panTools, 'Open' ).SetSize(50, 25);
  butSave := NewButton( panTools, 'Save as' ).SetSize(60, 25).PlaceRight;
  Dialog := NewOpenSaveDialog( '', '', [] );
  mainMenu := NewMenu(Form, 0,
    [
    'File',
    '(',
    'New',
    'Open',
    'Save As..',
    '-',
    '&Exit',
    ')'
    ],
    TOnMenuItem( MakeMethod( nil, @ProcessingMenu ))
    );

  butOpen.OnClick := TOnEvent( MakeMethod( nil, @clikButOpenSave ));
  butSave.OnClick := TOnEvent( MakeMethod( nil, @clikButOpenSave ));
  Run( Form );
end.

Результат:

Статья Урок 6 - Меню - как много в этом слове раздела Технологии KOL и MCK может быть полезна для разработчиков на delphi & pascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: KOL и MCK ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-04-26 19:56:12
2024-04-27 03:56:24/0.0065529346466064/2