Автор работы: Пользователь скрыл имя, 21 Мая 2013 в 08:11, курсовая работа
Подходя к современным требованиям нельзя не отметить, что эффективная работа всецело зависит от уровня оснащения электронным оборудованием, таким, как компьютеры, средства связи, копировальные устройства, а также соответствующего программного обеспечения. Ни одна современная организация не обходится без систем сбора и обработки информации. Чем больше стадий, тем этот процесс сложнее, чем больше и разнообразнее спектр информации, тем больше потребность в автоматизированном сборе, обработке и хранении информации в электронном виде. Поиск информации в бумажном виде занимает от минуты до нескольких дней, в зависимости от того, когда информация была собрана, поиск в электронном хранилище данных выполняется за доли и единицы секунд.
Введение…………………………………………………………………………3
1 Интерфейсы компьютерных систем…………………………………………4
1.1 Эволюция пользовательских интерфейсов……………………………….4
1.2 Актуальность интерфейсов....……………………………………………....5
1.3 Понятие интерфейса пользователя………………………………………...6
1.4 Виды интерфейсов……………………………...…………………………...8
2 Разработка пользовательского интерфейса «Языковая школа»……..…...10
2.1 Подключение базы данных к проекту Delphi………….....……………10
2.2 Интерфейсное управление данными..……………..……………………11
2.3 Диалоги загрузки графических файлов…………….…………………..12
2.4 Главное и контекстное меню...……………………..……………………..14
2.5 Создание сортировки.……………………………..……………………….19
2.5 Создание фильтрации для записей таблицы…………….……………….21
2.7 Поиск и работа с записями набора данных……………..………………25
Заключение…………………………………………………………………...…29
Список использованной литературы...………………...…
Label da1; Label da2; Label da3; Label da4;
var count : integer;
i : integer;
text : string;
begin
count := DataM.UchenikiTable.
text := LabeledEdit1.Text;
if RadioButton1.Checked then
if Length(LabeledEdit1.Text)<>0 then
begin
i:=0;
if (DataM.UchenikiTable.RecNo = count) and
(AnsiLowerCase(copy(DataM.
1,Length(text))) = AnsiLowerCase(text))then
begin
DataM.UchenikiTable.First;
goto da1;
end;
while not DataM.UchenikiTable.Eof do
begin
DataM.UchenikiTable.Next;
da1: //метка da1
if AnsiLowerCase(copy(DataM.
1,Length(text))) = AnsiLowerCase(text)then
break
else inc(i);
if i = count+1 then
begin
ShowMessage('Не найдено!');
break;
end;
if DataM.UchenikiTable.Eof then
begin
DataM.UchenikiTable.First;
goto da1;
end;
end;
end
else //если поле LabeledEdit1 пусто
begin
ShowMessage('Введите данные
//установить фокус ввода в поле LabeledEdit1
LabeledEdit1.SetFocus;
end;
Для поиска по справочнику «Преподаватели» необходимо добавить к приложению новую форму FindPrepodaForm с тем же заголовком «Поиск». Сразу сохраним модуль формы, задав ему имя FindPrepodaUnit:
procedure TFindPrepodaForm.
Label da1; Label da2; Label da3; Label da4;
var count : integer;
i : integer;
text : string ;
begin
count := DataM.PrepodaTable.
text := LabeledEdit1.Text;
if RadioButton1.Checked then
//если поле LabeledEdit1 не пустое, то
if Length(LabeledEdit1.Text)<>0 then
begin
i:=0;
if (DataM.PrepodaTable.RecNo = count) and
(AnsiLowerCase(copy(DataM.
1,Length(text))) = AnsiLowerCase(text))then
begin
DataM.PrepodaTable.First;
goto da1;
end;
while not DataM.PrepodaTable.Eof do
begin
DataM.PrepodaTable.Next;
da1: //метка da1
if AnsiLowerCase(copy(DataM.
1,Length(text))) = AnsiLowerCase(text)then
break
else inc(i);
if i = count+1 then
begin
ShowMessage('Не найдено!');
break;
end;
if DataM.PrepodaTable.Eof then
begin
DataM.PrepodaTable.First;
goto da1;
end;
end;
end
else
begin
ShowMessage('Введите данные
LabeledEdit1.SetFocus;
end;
Теперь вернемся в MainForm, где в главном меню создадим новый пункт, через который мы будем вызывать окно поиска. Дадим ему заголовок «Поиск», а в свойстве Name укажем Find_Menu.
В созданном обработчике напишем:
procedure TForm1.Find_MenuClick(Sender: TObject);
begin
if DBGrid1.DataSource = DataM.UchenikiSource then
begin
FindAllForm := TFindAllForm.Create(Owner);
FindAllForm.ShowModal;
end;
if DBGrid1.DataSource = DataM.PrepodaSource then
begin
FindPrepodaForm := TFindPrepodaForm.Create(Owner)
FindPrepodaForm.ShowModal;
end;
Заключение
В ходе выполнения данной курсовой работы мною были изучены новые теоретические основы о создании современного пользовательского интерфейса для языковой школы. В том числе с помощью Borland Delphi 7 создание фильтрации, поиска, сортировки, а также создание удобного интерфейса для пользователя с дополнительными функциями. Усвоил применение офисного пакета Microsoft Office Access для создания базы данных.
Список использованной литературы
Приложение А
База данных с помощью MS Access:
Рисунок 11 – Создание базы данных
Приложение Б
Листинг программы :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DBCtrls, StdCtrls, Mask, ExtCtrls, Menus,
Buttons, ExtDlgs, ComCtrls, ToolWin;
type
TForm1 = class(TForm)
TableBox: TGroupBox;
AllInfoBox: TGroupBox;
DBGrid1: TDBGrid;
MainMenu1: TMainMenu;
Books_Menu: TMenuItem;
Prepod_Item: TMenuItem;
Ucheniki_Item: TMenuItem;
N4: TMenuItem;
Exit_Item: TMenuItem;
GroupBox3: TGroupBox;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
GroupBox2: TGroupBox;
Label5: TLabel;
Label6: TLabel;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
DBEdit4: TDBEdit;
DBEdit1: TDBEdit;
DBEdit3: TDBEdit;
DBEdit2: TDBEdit;
GroupBox4: TGroupBox;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
DBNavigator1: TDBNavigator;
DBLookupComboBox1: TDBLookupComboBox;
DBLookupComboBox2: TDBLookupComboBox;
DBLookupComboBox3: TDBLookupComboBox;
DBLookupComboBox4: TDBLookupComboBox;
Panel1: TPanel;
OpenPictureDialog1: TOpenPictureDialog;
Add_Item: TMenuItem;
Edit_Item: TMenuItem;
Save_Item: TMenuItem;
CancelEdit_Item: TMenuItem;
Del_Item: TMenuItem;
Edit_Menu: TMenuItem;
PopupMenu1: TPopupMenu;
EditPop_Menu: TMenuItem;
AddPop_Item: TMenuItem;
EditPop_Item: TMenuItem;
DelPop_Item: TMenuItem;
N1: TMenuItem;
LoadFotoPop_Item: TMenuItem;
DelFotoPop_Item: TMenuItem;
StatusBar1: TStatusBar;
DBEdit21: TDBEdit;
N2: TMenuItem;
N3: TMenuItem;
About_Item: TMenuItem;
Sort_Menu: TMenuItem;
SortBySur_Item: TMenuItem;
SortByName_Item: TMenuItem;
SortByPat_Item: TMenuItem;
SortOrgsByNaz_Item: TMenuItem;
SortByKlass_Item: TMenuItem;
English_Item: TMenuItem;
Italy_Item: TMenuItem;
French_Item: TMenuItem;
DBEdit10: TDBEdit;
Label7: TLabel;
Panel2: TPanel;
GroupBox6: TGroupBox;
Label18: TLabel;
Label19: TLabel;
DBEdit13: TDBEdit;
DBEdit14: TDBEdit;
GroupBox7: TGroupBox;
Label20: TLabel;
Label21: TLabel;
DBEdit15: TDBEdit;
DBEdit16: TDBEdit;
GroupBox8: TGroupBox;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
DBEdit19: TDBEdit;
DBEdit18: TDBEdit;
DBEdit17: TDBEdit;
DBNavigator2: TDBNavigator;
DBImage1: TDBImage;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
GroupBox5: TGroupBox;
Label16: TLabel;
Label15: TLabel;
Label17: TLabel;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
DBEdit20: TDBEdit;
DBEdit22: TDBEdit;
FilterPanel: TPanel;
FilterUchenikiBox: TGroupBox;
FilterByFamiliya: TEdit;
FilterByImya: TEdit;
FilterByOtchestvo: TEdit;
FilterByTelefon: TEdit;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
FilterUchenikiBtn: TBitBtn;
FilterUchenikiCancel: TBitBtn;
Filter_Menu: TMenuItem;
BitBtn4: TBitBtn;
FilterPrepodaBox: TGroupBox;
Label29: TLabel;
Label32: TLabel;
Label31: TLabel;
Label30: TLabel;
FilterPrepodaBtn: TBitBtn;
FilterPrepodaCancel: TBitBtn;
FilterByFamiliya_P: TEdit;
FilterByImya_P: TEdit;
FilterByOtchestvo_P: TEdit;
FilterByPredmet: TEdit;
BitBtn3: TBitBtn;
Find_Menu: TMenuItem;
ToolBar1: TToolBar;
AddSpBtn: TSpeedButton;
DelSpBtn: TSpeedButton;
FindSpBtn: TSpeedButton;
FilterSpBtn: TSpeedButton;
TreeSpBtn: TSpeedButton;
HelpSpBtn: TSpeedButton;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Prepod_ItemClick(Sender: TObject);
procedure Ucheniki_ItemClick(Sender: TObject);
procedure
DBNavigator1BeforeAction(
Button: TNavigateBtn);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Exit_ItemClick(Sender: TObject);
procedure Add_ItemClick(Sender: TObject);
procedure Edit_ItemClick(Sender: TObject);
procedure Save_ItemClick(Sender: TObject);
procedure CancelEdit_ItemClick(Sender: TObject);
procedure Del_ItemClick(Sender: TObject);
procedure
DBNavigator2BeforeAction(
Button: TNavigateBtn);
procedure AddPop_ItemClick(Sender: TObject);
procedure EditPop_ItemClick(Sender: TObject);
procedure DelPop_ItemClick(Sender: TObject);
procedure DBEdit20Change(Sender: TObject);
procedure DelFotoPop_ItemClick(Sender: TObject);
procedure LoadFotoPop_ItemClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure DBEdit21Change(Sender: TObject);
procedure About_ItemClick(Sender: TObject);
procedure SortBySur_ItemClick(Sender: TObject);
procedure SortByName_ItemClick(Sender: TObject);
procedure SortByPat_ItemClick(Sender: TObject);
procedure
SortOrgsByNaz_ItemClick(
procedure SortByKlass_ItemClick(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure English_ItemClick(Sender: TObject);
procedure Italy_ItemClick(Sender: TObject);
procedure French_ItemClick(Sender: TObject);
procedure Filter_MenuClick(Sender: TObject);
procedure FilterPrepodaBtnClick(Sender: TObject);
procedure
FilterPrepodaCancelClick(
procedure CloseUchenikiBtnClick(Sender: TObject);
procedure FilterUchenikiBtnClick(Sender: TObject);
procedure
FilterUchenikiCancelClick(
procedure
FilterByFamiliya_PChange(
procedure FilterByImya_PChange(Sender: TObject);
procedure FilterByOtchestvo_PChange(
procedure FilterByPredmetChange(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure Find_MenuClick(Sender: TObject);
procedure AddSpBtnClick(Sender: TObject);
procedure DelSpBtnClick(Sender: TObject);
procedure FindSpBtnClick(Sender: TObject);
procedure FilterSpBtnClick(Sender: TObject);
private
{ Private declarations }
procedure ShowHint(Sender: TObject) ;
public
{ Public declarations }
end;
var
Form1: TForm1;
TableKind: string;
implementation
uses DataUnit, AboutUnit, HelloUnit, FindAllUnit, FindOrgsUnit;
{$R *.dfm}
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
//проверяем, нажата ли клавиша "вниз"
if (Key = VK_DOWN) then
begin
//приостанавливаем автоматическое обновление источника данных при
DataM.UchenikiTable.
//переходе на следующую запись
DataM.UchenikiTable.Next;
//проверяем, если конец таблицы, то
if DataM.UchenikiTable.EOF then
//блокируем действие клавиши
Key := 0
else
//в противном случае переходим на предыдущую запись
DataM.UchenikiTable.Prior;
//разрешаем обновление источника данных
DataM.UchenikiTable.
end;
end;
procedure TForm1.Prepod_ItemClick(
begin
DBGrid1.DataSource := DataM.PrepodaSource; //присваиваем нужный источник
GroupBox2.Visible := true;
Panel1.Visible := false;
Panel2.Visible := true;
if DBGrid1.DataSource = DataM.PrepodaSource then
begin
Panel1.Visible := false;
Panel2.Visible := true;
end;
DBGrid1.DataSource := DataM.PrepodaSource;
LoadFotoPop_Item.Visible := true;
DelFotoPop_Item.Visible := true;
SortBySur_Item.Visible := true;
SortByName_Item.Visible := true;
SortByPat_Item.Visible := true;
SortOrgsByNaz_Item.Visible := true;
SortByKlass_Item.Visible := false;
end;
procedure TForm1.Ucheniki_ItemClick(
begin
DBGrid1.DataSource := DataM.UchenikiSource; //присваиваем нужный источник
GroupBox2.Visible := true;
Panel1.Visible := true;
Panel2.Visible := false;
if DBGrid1.DataSource = DataM.UchenikiSource then
begin
Panel1.Visible := true;
Panel2.Visible := false;
end;
DBGrid1.DataSource := DataM.UchenikiSource;
LoadFotoPop_Item.Visible := false;
DelFotoPop_Item.Visible := false;
SortBySur_Item.Visible := true;
SortByName_Item.Visible := true;
SortByPat_Item.Visible := true;
SortOrgsByNaz_Item.Visible := true;
SortByKlass_Item.Visible := true;
end;
procedure TForm1.
Button: TNavigateBtn);
begin
if Button = nbDelete then
begin
Del_ItemClick(Sender); //вызываем процедуру удаления
Abort;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then //запускаем диалог
begin
DataM.PrepodaTable.Edit; //открываем таблицу для редактирования
//загружаем фотографию
DataM.PrepodaTableFoto.
DataM.PrepodaTable.Post; //сохраняем изменения
BitBtn2.Enabled := true; //деактивизируем кнопку
end;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
if MessageBox(0,PChar('Вы действительно хотите удалить
фотографию записи "'+DataM.PrepodaTableFamiliya_
MB_YESNOCANCEL + MB_ICONQUESTION) = id_YES then
begin
DataM.PrepodaTable.Edit;
DataM.PrepodaTableFoto.Clear; //очищаем поле Foto
DataM.PrepodaTable.Post;
BitBtn2.Enabled := false;
BitBtn1.SetFocus; //устанавливаем фокус на кнопку загрузки
end;
end;
procedure TForm1.Exit_ItemClick(Sender: TObject);
begin
Close;
end;
procedure TForm1.Add_ItemClick(Sender: TObject);
begin
if DBGrid1.DataSource = DataM.UchenikiSource then
begin
DataM.UchenikiTable.Insert; //добавляем новую строку
DBEdit1.ReadOnly := false;
DBEdit1.SetFocus; //устанавливаем фокус ввода
end;
if DBGrid1.DataSource = DataM.PrepodaSource then
begin
DataM.PrepodaTable.Insert;
DBEdit10.ReadOnly := false; //снимаем режим только для чтения
DBEdit10.SetFocus;
end;
end;
procedure TForm1.Edit_ItemClick(Sender: TObject);
begin
if DBGrid1.DataSource = DataM.UchenikiSource then
begin
DBEdit1.ReadOnly := false;
DBEdit1.SetFocus;
end;
if DBGrid1.DataSource = DataM.PrepodaSource then
begin
DBEdit10.ReadOnly := false;
DBEdit10.SetFocus;
end;
end;
procedure TForm1.Save_ItemClick(Sender: TObject);
begin
if DBGrid1.DataSource = DataM.UchenikiSource then
if DataM.UchenikiTable.Modified then //проверяем наличие изменений
if Application.MessageBox(PChar('
DataM.UchenikiTable.Post;
if DBGrid1.DataSource = DataM.PrepodaSource then
if DataM.PrepodaTable.Modified then
if Application.MessageBox(PChar('
DataM.PrepodaTable.Post;
end;
procedure TForm1.CancelEdit_ItemClick(
begin
if DBGrid1.DataSource = DataM.UchenikiSource then
if DataM.UchenikiTable.Modified then
DataM.UchenikiTable.Cancel; //отменяем изменения, если они есть
if DBGrid1.DataSource = DataM.PrepodaSource then
if DataM.PrepodaTable.Modified then