Добавил:
Eatmore
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:написанные программы / задание №7 — 2 / VAR1 / lab_7_v1
.pas {
Laboratory Task 2
~~~~~~~~~~~~~~~~~
Copyright (c) 2000 NeOS Programming Software, Aleksey Borzenkov
Lab02.pas - Ћб®ў®© д ©« Їа®Ја ¬¬л
(*) NeOS Programming Software Ґ § ॣЁбваЁа®ў п в®аЈ®ў п ¬ аЄ , ® ўл
(*) Ґ ¤®«¦л ҐҐ ЁбЇ®«м§®ў вм ЁЈ¤Ґ, Єа®¬Ґ нв®Ј® Є®ЇЁа ©в !!!
(*) NeOS Programming Software Ўл« ®б®ў ў 1998 Ј®¤г Ё ᥩз б ᮦҐа¦Ёв
(*) в®«мЄ® ®¤®Ј® 祫®ўҐЄ - ҐЈ® ®б®ў вҐ«п Ѓ®а§ҐЄ®ў Ђ«ҐЄбҐп.
(!) ќв Їа®Ја ¬¬ Ўл« бЇҐжЁ «м® Ё§Ј®в®ў«Ґ ¤«п ’ҐеЁзҐбЄ®Ј® “ЁўҐабЁвҐв
(!) €’ЊЋ Ё д Єг«мвҐв Љ’Ё“ ("Љ®¬ЇмовҐале ’Ґе®«®ЈЁ© Ё “Їа ў«ҐЁп") Є Є
(!) « Ў®а в®а п а Ў®в б §ў ЁҐ¬ "Pascal/156/TV § ¤ ЁҐ ®¬Ґа 1".
}
program Lab02;
uses
DhCrt, Objects, Drivers, App, Views, Menus, Dialogs,
CSDialog;
type
{ Є« бб ЇаЁ«®¦ҐЁп }
PMyApplication = ^TMyApplication;
TMyApplication = object(TApplication)
CPUData: TMyDialogData;
RAMData: TMyDialogData;
procedure InitMenuBar; virtual;
procedure InitStatusLine; virtual;
procedure HandleEvent(var Event: TEvent); virtual;
end;
{ Є« бб Є®вҐЄбв® § ўЁбЁ¬®© бва®ЄЁ б®бв®пЁп }
{ Ё¤Ґп ў§пв Ё§ ЇаЁ¬Ґа®ў Turbo Vision Є®¬Ї ЁЁ Borland International }
PMyStatusLine = ^TMyStatusLine;
TMyStatusLine = object(TStatusLine)
function Hint(AHelpCtx: Word): String; virtual;
end;
{ ҐЄ®в®алҐ Ґ®Ўе®¤Ё¬лҐ Є®бв вл }
const
hcMenuFile = 2000;
hcMenuFileExit = 2001;
hcMenuSelect = 2010;
hcMenuSelectCPU = 2011;
hcMenuSelectRAM = 2012;
cmMenuSelectCPU = 1000;
cmMenuSelectRAM = 1001;
{ ᮧ¤ Ґв ¬Ґо }
procedure TMyApplication.InitMenuBar;
var
R: TRect;
begin
GetExtent(R);
R.B.Y := R.A.Y + 1;
MenuBar := New(PMenuBar, Init(R, NewMenu(
NewSubMenu('~F~-” ©«', hcMenuFile, NewMenu(
NewItem('~X~-‚л室', 'Alt-X', kbAltX, cmQuit, hcMenuFileExit,
nil)),
NewSubMenu('~S~-‚лЎ®а', hcMenuSelect, NewMenu(
NewItem('~C~-Џ® з бв®вҐ –Џ', 'Alt-C', kbAltC, cmMenuSelectCPU, hcMenuSelectCPU,
NewItem('~R~-Џ® ®ЎкҐ¬г Ћ‡“', 'Alt-R', kbAltR, cmMenuSelectRAM, hcMenuSelectRAM,
nil))),
nil)))
));
end;
{ ᮧ¤ Ґв бва®Єг б®бв®пЁп }
procedure TMyApplication.InitStatusLine;
var
R: TRect;
begin
GetExtent(R);
R.A.Y := R.B.Y - 1;
StatusLine := New(PMyStatusLine, Init(R,
NewStatusDef(0, 0,
NewStatusKey('~Alt-X~ ‚л室', kbAltX, cmQuit,
NewStatusKey('~F10~ ЊҐо', kbF10, cmMenu,
nil)),
NewStatusDef(1, $FFFF,
NewStatusKey('~Alt-X~ ‚л室', kbAltX, cmQuit,
nil),
nil))
));
end;
{ ®Ўа Ў влў Ґв б®®ЎйҐЁп }
procedure TMyApplication.HandleEvent(var Event: TEvent);
begin
inherited HandleEvent(Event);
if Event.What = evCommand then begin
case Event.Command of
cmMenuSelectCPU: begin
if ExecuteDialog(MakeCPUDialog, @CPUData) = cmOk then
ExecuteDialog(MakeInfoDialog(#3'Ќ ЁЎ®«ҐҐ Ї®¤е®¤пйЁ© Є®¬ЇмовҐа:'#13 +
FindByCPU(CPUData.ButtonData)), nil);
ClearEvent(Event);
end;
cmMenuSelectRAM: begin
if ExecuteDialog(MakeRAMDialog, @RAMData) = cmOk then
ExecuteDialog(MakeInfoDialog(#3'Ќ ЁЎ®«ҐҐ Ї®¤е®¤пйЁ© Є®¬ЇмовҐа:'#13 +
FindByRAM(RAMData.ButtonData)), nil);
ClearEvent(Event);
end;
end;
end;
end;
{ ў®§ўа й Ґв бва®Єг Ї®¤бЄ §ЄЁ }
function TMyStatusLine.Hint(AHelpCtx: Word): String;
var
S: String;
begin
case AHelpCtx of
hcMenuFile: S := 'ЊҐо ¤«п гЇа ў«ҐЁп Їа®Ја ¬¬®©';
hcMenuFileExit: S := 'Ќ ¦¬ЁвҐ ¤«п ўл室 Ё§ Їа®Ја ¬¬л';
hcMenuSelect: S := 'ЊҐо ¤«п ўлЎ®а б ¬®Ј® ¤ҐиҐў®Ј® Є®¬ЇмовҐа ';
hcMenuSelectCPU: S := 'Ќ ¦¬ЁвҐ ¤«п ®вЎ®а Ї® з бв®вҐ –Џ';
hcMenuSelectRAM: S := 'Ќ ¦¬ЁвҐ ¤«п ®вЎ®а Ї® ®ЎкҐ¬г Ћ‡“';
else S := '';
end;
if (AHelpCtx <> hcNoContext) and (S = '') then
S := 'Џ®¤бЄ §Є ¤«п нв®Ј® Є®¬Ї®Ґв Ґ ©¤Ґ ...';
Hint := S;
end;
var
MyApplication: TMyApplication;
Event: TEvent;
Done: Boolean;
begin
MyApplication.Init;
MyApplication.Run;
MyApplication.Done;
end.
Laboratory Task 2
~~~~~~~~~~~~~~~~~
Copyright (c) 2000 NeOS Programming Software, Aleksey Borzenkov
Lab02.pas - Ћб®ў®© д ©« Їа®Ја ¬¬л
(*) NeOS Programming Software Ґ § ॣЁбваЁа®ў п в®аЈ®ў п ¬ аЄ , ® ўл
(*) Ґ ¤®«¦л ҐҐ ЁбЇ®«м§®ў вм ЁЈ¤Ґ, Єа®¬Ґ нв®Ј® Є®ЇЁа ©в !!!
(*) NeOS Programming Software Ўл« ®б®ў ў 1998 Ј®¤г Ё ᥩз б ᮦҐа¦Ёв
(*) в®«мЄ® ®¤®Ј® 祫®ўҐЄ - ҐЈ® ®б®ў вҐ«п Ѓ®а§ҐЄ®ў Ђ«ҐЄбҐп.
(!) ќв Їа®Ја ¬¬ Ўл« бЇҐжЁ «м® Ё§Ј®в®ў«Ґ ¤«п ’ҐеЁзҐбЄ®Ј® “ЁўҐабЁвҐв
(!) €’ЊЋ Ё д Єг«мвҐв Љ’Ё“ ("Љ®¬ЇмовҐале ’Ґе®«®ЈЁ© Ё “Їа ў«ҐЁп") Є Є
(!) « Ў®а в®а п а Ў®в б §ў ЁҐ¬ "Pascal/156/TV § ¤ ЁҐ ®¬Ґа 1".
}
program Lab02;
uses
DhCrt, Objects, Drivers, App, Views, Menus, Dialogs,
CSDialog;
type
{ Є« бб ЇаЁ«®¦ҐЁп }
PMyApplication = ^TMyApplication;
TMyApplication = object(TApplication)
CPUData: TMyDialogData;
RAMData: TMyDialogData;
procedure InitMenuBar; virtual;
procedure InitStatusLine; virtual;
procedure HandleEvent(var Event: TEvent); virtual;
end;
{ Є« бб Є®вҐЄбв® § ўЁбЁ¬®© бва®ЄЁ б®бв®пЁп }
{ Ё¤Ґп ў§пв Ё§ ЇаЁ¬Ґа®ў Turbo Vision Є®¬Ї ЁЁ Borland International }
PMyStatusLine = ^TMyStatusLine;
TMyStatusLine = object(TStatusLine)
function Hint(AHelpCtx: Word): String; virtual;
end;
{ ҐЄ®в®алҐ Ґ®Ўе®¤Ё¬лҐ Є®бв вл }
const
hcMenuFile = 2000;
hcMenuFileExit = 2001;
hcMenuSelect = 2010;
hcMenuSelectCPU = 2011;
hcMenuSelectRAM = 2012;
cmMenuSelectCPU = 1000;
cmMenuSelectRAM = 1001;
{ ᮧ¤ Ґв ¬Ґо }
procedure TMyApplication.InitMenuBar;
var
R: TRect;
begin
GetExtent(R);
R.B.Y := R.A.Y + 1;
MenuBar := New(PMenuBar, Init(R, NewMenu(
NewSubMenu('~F~-” ©«', hcMenuFile, NewMenu(
NewItem('~X~-‚л室', 'Alt-X', kbAltX, cmQuit, hcMenuFileExit,
nil)),
NewSubMenu('~S~-‚лЎ®а', hcMenuSelect, NewMenu(
NewItem('~C~-Џ® з бв®вҐ –Џ', 'Alt-C', kbAltC, cmMenuSelectCPU, hcMenuSelectCPU,
NewItem('~R~-Џ® ®ЎкҐ¬г Ћ‡“', 'Alt-R', kbAltR, cmMenuSelectRAM, hcMenuSelectRAM,
nil))),
nil)))
));
end;
{ ᮧ¤ Ґв бва®Єг б®бв®пЁп }
procedure TMyApplication.InitStatusLine;
var
R: TRect;
begin
GetExtent(R);
R.A.Y := R.B.Y - 1;
StatusLine := New(PMyStatusLine, Init(R,
NewStatusDef(0, 0,
NewStatusKey('~Alt-X~ ‚л室', kbAltX, cmQuit,
NewStatusKey('~F10~ ЊҐо', kbF10, cmMenu,
nil)),
NewStatusDef(1, $FFFF,
NewStatusKey('~Alt-X~ ‚л室', kbAltX, cmQuit,
nil),
nil))
));
end;
{ ®Ўа Ў влў Ґв б®®ЎйҐЁп }
procedure TMyApplication.HandleEvent(var Event: TEvent);
begin
inherited HandleEvent(Event);
if Event.What = evCommand then begin
case Event.Command of
cmMenuSelectCPU: begin
if ExecuteDialog(MakeCPUDialog, @CPUData) = cmOk then
ExecuteDialog(MakeInfoDialog(#3'Ќ ЁЎ®«ҐҐ Ї®¤е®¤пйЁ© Є®¬ЇмовҐа:'#13 +
FindByCPU(CPUData.ButtonData)), nil);
ClearEvent(Event);
end;
cmMenuSelectRAM: begin
if ExecuteDialog(MakeRAMDialog, @RAMData) = cmOk then
ExecuteDialog(MakeInfoDialog(#3'Ќ ЁЎ®«ҐҐ Ї®¤е®¤пйЁ© Є®¬ЇмовҐа:'#13 +
FindByRAM(RAMData.ButtonData)), nil);
ClearEvent(Event);
end;
end;
end;
end;
{ ў®§ўа й Ґв бва®Єг Ї®¤бЄ §ЄЁ }
function TMyStatusLine.Hint(AHelpCtx: Word): String;
var
S: String;
begin
case AHelpCtx of
hcMenuFile: S := 'ЊҐо ¤«п гЇа ў«ҐЁп Їа®Ја ¬¬®©';
hcMenuFileExit: S := 'Ќ ¦¬ЁвҐ ¤«п ўл室 Ё§ Їа®Ја ¬¬л';
hcMenuSelect: S := 'ЊҐо ¤«п ўлЎ®а б ¬®Ј® ¤ҐиҐў®Ј® Є®¬ЇмовҐа ';
hcMenuSelectCPU: S := 'Ќ ¦¬ЁвҐ ¤«п ®вЎ®а Ї® з бв®вҐ –Џ';
hcMenuSelectRAM: S := 'Ќ ¦¬ЁвҐ ¤«п ®вЎ®а Ї® ®ЎкҐ¬г Ћ‡“';
else S := '';
end;
if (AHelpCtx <> hcNoContext) and (S = '') then
S := 'Џ®¤бЄ §Є ¤«п нв®Ј® Є®¬Ї®Ґв Ґ ©¤Ґ ...';
Hint := S;
end;
var
MyApplication: TMyApplication;
Event: TEvent;
Done: Boolean;
begin
MyApplication.Init;
MyApplication.Run;
MyApplication.Done;
end.