RSS    

   Реферат: Разработка программы психотестирования

          Если кому-то захочется сделать уж очень «крутую» программу, тут ему поможет возможность вставки картинок.

2. 2 TPopupMenu

          Это всплывающее меню, оно вызывается нажатием правой кнопки мыши. В палитре компонентов его значок такой:  . Как и MainMenu, этот компонент следует поместить на форму, для редактирования два раза щелкнуть. Во всем, что касается создания пунктов, этот компонент идентичен MainMenu. Ну, разве что, сразу строится вертикальное меню.

Для того, чтобы меню «всплывало», нужно в свойстве PopupMenu формы указать его (меню) имя.


2.   3  Пример программы

          Ниже будут представлены примеры программ, использующие такие компоненты, как меню. Кроме исходного кода будут иллюстрации.

          Пример представляет собой несложную программу, позволяющую просматривать и редактировать текстовые файлы. Окно этой программы показано на рис. 2. 8.

 

Рисунок 2. 8 – Окно программы-примера

          Ниже будет представлен листинг программы:

unit Unit1;

{Главный модуль программы}

interface

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls;

type

  TForm1 = class(TForm)

    MainMenu1: TMainMenu; {Главное меню}

    N1: TMenuItem;        {Меню “Файл”}

    N2: TMenuItem;        {Меню “Открыть”}

    N3: TMenuItem;        {Меню “Сохранить”}

    N4: TMenuItem;        {Меню “Выход”}

    N5: TMenuItem;        {Разделительная линия}

    N6: TMenuItem;        {Меню “Помощь”}

    N7: TMenuItem;        {Меню “О программе”}

    Memo1: TMemo;

    OpenDialog1: TOpenDialog;

    SaveDialog1: TSaveDialog;

    PopupMenu1: TPopupMenu;        {Всплывающее меню}

    procedure N4Click(Sender: TObject);

    procedure N7Click(Sender: TObject);

    procedure N2Click(Sender: TObject);

    procedure N3Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

uses Unit2;

{$R *.DFM}

procedure TForm1.N4Click(Sender: TObject);

begin

   close;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

   aboutbox.show

end;

procedure TForm1.N2Click(Sender: TObject);

begin

   if opendialog1.Execute then memo1.Lines.LoadFromFile(opendialog1.filename)

end;

procedure TForm1.N3Click(Sender: TObject);

begin

   if savedialog1.Execute then memo1.Lines.SaveToFile(savedialog1.filename)

end;

end.

unit Unit2;

{Модуль, описывающий окно “О программе”}

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls;

type

  TAboutBox = class(TForm)

    Panel1: TPanel;

    ProgramIcon: TImage;

    ProductName: TLabel;

    Comments: TLabel;

    OKButton: TButton;

    procedure OKButtonClick(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  AboutBox: TAboutBox;

implementation

{$R *.DFM}

procedure TAboutBox.OKButtonClick(Sender: TObject);

begin

   Hide

end;

end.

 

    Данная программа демонстрирует использование меню. Она имеет главное меню и всплывающее, которое появляется при нажатии правой кнопки мышки. Меню снабжены клавишами быстрого доступа, используется разделительная линия.

          Меню «Открыть», «Сохранить», «Выход» и «О программе» снабжены клавишами быстрого доступа. Всплывающее меню, имеющее два пункта –  «Открыть» и «Сохранить». При их нажатии вызываются события соотвутствующих пунктов главного меню.


Выводы

          В данной курсовой работе разработана система для психотестирования на Borland Delphi 5. 0. Кроме основной программы, созданы две утилитные – для создания тестов, которые хранятся в отдельных файлах.

          В процессе составления программы детально были изучены основные объекты графического интерфейсa Windows.

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


Список литературы

1. Культин Н. Delphi 4. Программирование на Object Pascal. BHV, Санкт-Петербург, 1999. – 480 с., ил.

2. Дэн Оузьер и др. Delphi 3. Освой самостоятельно. М.: “Издательство БИНОМ”, 1998 г. – 560 с.: ил.

3. Бондарев В. М., Рублинецкий В. И., Качко Е. Г. Основы программирования. Харьков: Фолио; Ростов н/Д: Феникс, 1998  – 368 с.


Приложение А

          Листинг программы.

unit Mainfrm;

interface

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  Buttons, ExtCtrls, TestTypes;

type

  TfrmMain = class(TForm)

    Image1: TImage;

    SpeedButton1: TSpeedButton;

    SpeedButton2: TSpeedButton;

    Image2: TImage;

    SpeedButton3: TSpeedButton;

    procedure runtest;

    procedure SpeedButton1Click(Sender: TObject);

    procedure SpeedButton2Click(Sender: TObject);

    procedure SpeedButton3Click(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

  private

    { Private declarations }

  public

  end;

var

  frmMain: TfrmMain;

  testcount:integer;

 

implementation

uses Testfrm;

{$R *.DFM}

procedure tfrmmain.runtest;

var f:file of ttest;

begin

     frmmain.hide;

     assignfile(f,testfilename);

     try

        reset(f);

     except

        showmessage('Файл теста не найден!');

        exit

     end;

     testnum:=1;

     while not eof(f) do begin

        try

           read(f,test[testnum]);

           inc(testnum);

        except

           showmessage('Ошибка в файле теста');

           frmmain.show;

           exit

        end

     end;

     closefile(f);

     frmTest.show;

end;

procedure TfrmMain.SpeedButton1Click(Sender: TObject);

begin

     testfilename:='Time.tst';

     runtest

end;

procedure TfrmMain.SpeedButton2Click(Sender: TObject);

begin

     testfilename:='Agress.tst';

     runtest

end;

procedure TfrmMain.SpeedButton3Click(Sender: TObject);

begin

   testfilename:='health.tst';

   runtest

end;

procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);

begin

   if messagedlg('Вы действительно хотите выйти?',mtwarning,[mbyes,mbno],0)=mrno then action:=canone

end;

end.

unit Testfrm;

interface

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  ExtCtrls, StdCtrls, Buttons, testtypes;

type

  TfrmTest = class(TForm)

    Image1: TImage;

    rb1: TRadioButton;

    rb2: TRadioButton;

    rb3: TRadioButton;

    Label1: TLabel;

    SpeedButton1: TSpeedButton;

    procedure load;

    procedure rb1Click(Sender: TObject);

    procedure rb2Click(Sender: TObject);

    procedure rb3Click(Sender: TObject);

    procedure FormActivate(Sender: TObject);

    procedure SpeedButton1Click(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

  private

    { Private declarations }

  public

    defque:byte;

  end;

var

  frmTest: TfrmTest;

implementation

{$R *.DFM}

uses mainfrm, Resfrm;

procedure tfrmtest.load;

begin

   label1.caption:=test[defque].text;

   rb1.Caption:=test[defque].quest[1];

   rb2.Caption:=test[defque].quest[2];

   rb3.Caption:=test[defque].quest[3];

   speedbutton1.enabled:=false;

   rb1.Enabled:=true;

   rb2.Enabled:=true;

   rb3.Enabled:=true;

   rb1.Checked:=false;

   rb2.Checked:=false;

   rb3.Checked:=false;

   if rb3.caption='' then rb3.hide else rb3.Show

end;

procedure TfrmTest.FormActivate(Sender: TObject);

begin

   testcount:=0;

   defque:=1;

   load

end;

procedure TfrmTest.rb1Click(Sender: TObject);

begin

   speedbutton1.Enabled:=true;

   rb1.Enabled:=false;

   rb2.Enabled:=false;

   rb3.Enabled:=false;

   inc(testcount,test[defque].count[1])

end;

procedure TfrmTest.rb2Click(Sender: TObject);

begin

   speedbutton1.Enabled:=true;

   rb1.Enabled:=false;

   rb2.Enabled:=false;

   rb3.Enabled:=false;

   inc(testcount,test[defque].count[2])

end;

procedure TfrmTest.rb3Click(Sender: TObject);

begin

   speedbutton1.Enabled:=true;

Страницы: 1, 2, 3, 4


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.