Lazstats: Refactor units of the item banking system (reports to stringlist, not to outputfrm directly; clean-up of code). NOT TESTED. Hook help items of Measurement Programs menu to chm.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7455 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2020-05-14 13:51:39 +00:00
parent 33e90c9cf9
commit 52f150f6a9
20 changed files with 1302 additions and 1317 deletions

Binary file not shown.

View File

@ -3,6 +3,8 @@ object CompRelFrm: TCompRelFrm
Height = 361
Top = 429
Width = 583
HelpType = htKeyword
HelpKeyword = 'WeightedCompositeReliability.htm'
AutoSize = True
Caption = 'Composite Test Reliability'
ClientHeight = 361

View File

@ -3,6 +3,8 @@ object DIFFrm: TDIFFrm
Height = 350
Top = 244
Width = 748
HelpType = htKeyword
HelpKeyword = 'DifferentialItemFunctioning.htm'
Caption = 'DIF Specifications'
ClientHeight = 350
ClientWidth = 748

View File

@ -3,6 +3,8 @@ object GradebookFrm: TGradebookFrm
Height = 541
Top = 275
Width = 956
HelpType = htKeyword
HelpKeyword = 'GradeBook.htm'
Caption = 'Gradebook'
ClientHeight = 521
ClientWidth = 956

View File

@ -3,6 +3,8 @@ object GradingFrm: TGradingFrm
Height = 441
Top = 163
Width = 622
HelpType = htKeyword
HelpKeyword = 'GradeBook.htm'
Caption = 'Specification for Grades'
ClientHeight = 441
ClientWidth = 622

View File

@ -3,6 +3,8 @@ object GuttmanFrm: TGuttmanFrm
Height = 307
Top = 322
Width = 382
HelpType = htKeyword
HelpKeyword = 'GuttmanScalogramAnalysis.htm'
AutoSize = True
Caption = 'Guttman Sclaogram Analysis'
ClientHeight = 307

View File

@ -61,13 +61,12 @@ var
implementation
uses
ItemBankingUnit;
ItemBankingUnit, Utils;
{ TEssayItemForm }
procedure TEssayItemForm.ReturnBtnClick(Sender: TObject);
begin
EssayItemForm.Hide;
Close;
end;
@ -78,38 +77,38 @@ end;
procedure TEssayItemForm.ShowNextBtnClick(Sender: TObject);
var
count : integer;
itemno : integer;
JPEG : TJPEGImage;
count: integer;
itemno: integer;
JPEG: TJPEGImage;
begin
itemno := StrToInt(ItemNoEdit.Text) + 1;
count := ItemBankFrm.BankInfo.NEssayItems;
if count <= itemno then
begin
ItemNoEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].minorcode);
ItemStemEdit.Text := ItemBankFrm.EssayInfo[itemno].ItemStem;
AnswerEdit.Text := ItemBankFrm.EssayInfo[itemno].Answer;
jpegnameEdit.Text := ItemBankFrm.EssayInfo[itemno].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;
ItemNoEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].minorcode);
ItemStemEdit.Text := ItemBankFrm.EssayInfo[itemno].ItemStem;
AnswerEdit.Text := ItemBankFrm.EssayInfo[itemno].Answer;
jpegnameEdit.Text := ItemBankFrm.EssayInfo[itemno].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;
end;
end;
procedure TEssayItemForm.StartNewBtnClick(Sender: TObject);
var
currentno : integer;
currentno: integer;
begin
currentno := ItemBankFrm.BankInfo.NEssayItems + 1;
ItemNoEdit.Text := IntToStr(currentno);
@ -123,8 +122,8 @@ end;
procedure TEssayItemForm.ItemSaveBtnClick(Sender: TObject);
var
currentno : integer;
count : integer;
currentno: integer;
count: integer;
begin
count := ItemBankFrm.BankInfo.NEssayItems;
currentno := StrToInt(ItemNoEdit.Text);
@ -142,71 +141,70 @@ begin
end;
procedure TEssayItemForm.FormShow(Sender: TObject);
Var
nitems : integer;
JPEG : TJPEGImage;
var
//nitems: integer;
JPEG: TJPEGImage;
begin
if ItemBankFrm.BankInfo.NEssayItems > 0 then
begin
nitems := ItemBankFrm.BankInfo.NEssayItems;
ItemNoEdit.Text := '1'; //IntToStr(ItemBankFrm.TFItemInfo[1].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[1].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[1].minorcode);
ItemStemEdit.Text := ItemBankFrm.EssayInfo[1].ItemStem;
AnswerEdit.Text := ItemBankFrm.EssayInfo[1].Answer;
jpegnameEdit.Text := ItemBankFrm.EssayInfo[1].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;
//nitems := ItemBankFrm.BankInfo.NEssayItems;
ItemNoEdit.Text := '1'; //IntToStr(ItemBankFrm.TFItemInfo[1].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[1].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[1].minorcode);
ItemStemEdit.Text := ItemBankFrm.EssayInfo[1].ItemStem;
AnswerEdit.Text := ItemBankFrm.EssayInfo[1].Answer;
jpegnameEdit.Text := ItemBankFrm.EssayInfo[1].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;
end else
begin
ItemNoEdit.Text := '1';
MajorCodeEdit.Text := '1';
MinorCodeEdit.Text := '0';
ItemStemEdit.Text := '';
AnswerEdit.Text := '';
jpegnameEdit.Text := 'none';
Image1.Picture.Clear;
ItemNoEdit.Text := '1';
MajorCodeEdit.Text := '1';
MinorCodeEdit.Text := '0';
ItemStemEdit.Text := '';
AnswerEdit.Text := '';
jpegnameEdit.Text := 'none';
Image1.Picture.Clear;
end;
end;
procedure TEssayItemForm.CodeBrowseBtnClick(Sender: TObject);
var
count : integer;
i : integer;
outline : string;
count: integer;
i: integer;
lReport: TStrings;
begin
OutputFrm.RichEdit.Clear;
count := ItemBankFrm.BankInfo.NTFItems;
OutputFrm.RichEdit.Lines.Add('Current Items');
OutputFrm.RichEdit.Lines.Add('');
lReport := TStringList.Create;
try
lReport.Add('Current Items');
lReport.Add('');
for i := 1 to count do
begin
outline := format('Item number %3d',[ItemBankFrm.EssayInfo[i].itemnumber]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Major Code %3d',[ItemBankFrm.EssayInfo[i].majorcode]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Minor Code %3d',[ItemBankFrm.EssayInfo[i].minorcode]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Item Stem %s',[ItemBankFrm.EssayInfo[i].ItemStem]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Breif Answer %s',[ItemBankFrm.EssayInfo[i].Answer]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Graphic Image %s',[ItemBankFrm.EssayInfo[i].PicName]);
OutputFrm.RichEdit.Lines.Add(outline);
OutputFrm.RichEdit.Lines.Add('');
for i := 1 to count do
begin
lReport.Add('Item number %d', [ItemBankFrm.EssayInfo[i].itemnumber]);
lReport.Add('Major Code %d', [ItemBankFrm.EssayInfo[i].majorcode]);
lReport.Add('Minor Code %d', [ItemBankFrm.EssayInfo[i].minorcode]);
lReport.Add('Item Stem %s', [ItemBankFrm.EssayInfo[i].ItemStem]);
lReport.Add('Breif Answer %s', [ItemBankFrm.EssayInfo[i].Answer]);
lReport.Add('Graphic Image %s', [ItemBankFrm.EssayInfo[i].PicName]);
lReport.Add('');
end;
DisplayReport(lReport);
finally
lReport.Free;
end;
OutputFrm.ShowModal;
end;
procedure TEssayItemForm.FormActivate(Sender: TObject);
@ -221,14 +219,11 @@ end;
procedure TEssayItemForm.FormCreate(Sender: TObject);
begin
Assert(ItemBankFrm <> nil);
if OutputFrm = nil then
Application.CreateForm(TOutputFrm, OutputFrm);
end;
procedure TEssayItemForm.jpegBrowseBtnClick(Sender: TObject);
VAR
JPEG : TJPEGImage;
var
JPEG: TJPEGImage;
begin
OpenPictureDialog1.Options := OpenPictureDialog1.Options+[ofFileMustExist];
if not OpenPictureDialog1.Execute then exit;
@ -243,39 +238,39 @@ begin
except
on E: Exception do begin
Image1.Picture.Clear;
MessageDlg('Error','Error: '+E.Message,mtError,[mbOk],0);
ErrorMsg(E.Message);
end;
end;
Image1.Proportional := true;
end;
procedure TEssayItemForm.PreviousBtnClick(Sender: TObject);
Var
response : string;
itemno : integer;
JPEG : TJPEGImage;
var
response: string;
itemno: integer;
JPEG: TJPEGImage;
begin
response := InputBox('Code Number:','Number:','1');
itemno := StrToInt(response);
if itemno <= ItemBankFrm.BankInfo.NEssayItems then
begin
ItemNoEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].majorcode);
MinorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].minorcode);
ItemStemEdit.Text := ItemBankFrm.EssayInfo[itemno].ItemStem ;
AnswerEdit.Text := ItemBankFrm.EssayInfo[itemno].Answer;
jpegnameEdit.Text := ItemBankFrm.EssayInfo[itemno].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end;
ItemNoEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].majorcode);
MinorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].minorcode);
ItemStemEdit.Text := ItemBankFrm.EssayInfo[itemno].ItemStem ;
AnswerEdit.Text := ItemBankFrm.EssayInfo[itemno].Answer;
jpegnameEdit.Text := ItemBankFrm.EssayInfo[itemno].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end;
end;
end;

View File

@ -3,10 +3,13 @@ object ItemBankFrm: TItemBankFrm
Height = 585
Top = 241
Width = 387
HelpType = htKeyword
HelpKeyword = 'ItemBanking.htm'
Caption = 'Item Banking'
ClientHeight = 565
ClientWidth = 387
Menu = MainMenu1
OnCloseQuery = FormCloseQuery
OnCreate = FormCreate
OnShow = FormShow
Position = poMainFormCenter
@ -295,7 +298,6 @@ object ItemBankFrm: TItemBankFrm
end
object ExitThis: TMenuItem
Caption = 'Exit this procedure'
OnClick = ExitThisClick
end
end
object Operations: TMenuItem

View File

@ -56,56 +56,59 @@ uses
procedure TCodesForm.SaveCodeBtnClick(Sender: TObject);
var
currentno : integer;
currentno: integer;
begin
currentno := StrToInt(ItemNoEdit.Text);
if currentno > ItemBankFrm.BankInfo.NCodes then
ItemBankFrm.BankInfo.NCodes := currentno;
ItemBankFrm.NItemCodesText.Text := IntToStr(currentno);
ItemBankFrm.CodesInfo[currentno].codenumber := currentno;
ItemBankFrm.CodesInfo[currentno].majorcodes := StrToInt(MajorEdit.Text);
ItemBankFrm.CodesInfo[currentno].minorcodes := StrToInt(MinorEdit.Text);
ItemBankFrm.CodesInfo[currentno].Description := DescriptionEdit.Text;
currentno := StrToInt(ItemNoEdit.Text);
if currentno > ItemBankFrm.BankInfo.NCodes then
ItemBankFrm.BankInfo.NCodes := currentno;
ItemBankFrm.NItemCodesText.Text := IntToStr(currentno);
ItemBankFrm.CodesInfo[currentno].codenumber := currentno;
ItemBankFrm.CodesInfo[currentno].majorcodes := StrToInt(MajorEdit.Text);
ItemBankFrm.CodesInfo[currentno].minorcodes := StrToInt(MinorEdit.Text);
ItemBankFrm.CodesInfo[currentno].Description := DescriptionEdit.Text;
end;
procedure TCodesForm.DisplayBtnClick(Sender: TObject);
var
currentno : integer;
i : integer;
outline : string;
currentno: integer;
i: integer;
outline: string;
lReport: TStrings;
begin
currentno := ItemBankFrm.BankInfo.NCodes;
OutputFrm.RichEdit.Lines.Add('Current Item Codes');
OutputFrm.RichEdit.Lines.Add('');
lReport := TStringList.Create;
try
lReport.Add('Current Item Codes');
lReport.Add('');
for i := 1 to currentno do
begin
outline := format('Item number %3d',[ItemBankFrm.CodesInfo[i].codenumber]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Major Code %3d',[ItemBankFrm.CodesInfo[i].majorcodes]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Minor Code %3d',[ItemBankFrm.CodesInfo[i].minorcodes]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Description %s',[ItemBankFrm.CodesInfo[i].Description]);
OutputFrm.RichEdit.Lines.Add(outline);
OutputFrm.RichEdit.Lines.Add('');
end;
OutputFrm.ShowModal;
currentno := ItemBankFrm.BankInfo.NCodes;
for i := 1 to currentno do
begin
lReport.Add('Item number %d', [ItemBankFrm.CodesInfo[i].codenumber]);
lReport.Add('Major Code %d', [ItemBankFrm.CodesInfo[i].majorcodes]);
lReport.Add('Minor Code %d', [ItemBankFrm.CodesInfo[i].minorcodes]);
lReport.Add('Description %s', [ItemBankFrm.CodesInfo[i].Description]);
lReport.Add('');
end;
DisplayReport(lReport);
finally
lReport.Free;
end;
end;
procedure TCodesForm.EditOneBtnClick(Sender: TObject);
Var
response : string;
codeno : integer;
var
response: string;
codeno: integer;
begin
response := InputBox('Code Number:','Number:','1');
response := InputBox('Code Number:','Number:', '1');
codeno := StrToInt(response);
if codeno <= ItemBankFrm.BankInfo.NCodes then
begin
ItemNoEdit.Text := IntToStr(ItemBankFrm.CodesInfo[codeno].codenumber);
MajorEdit.Text := IntToStr(ItemBankFrm.CodesInfo[codeno].majorcodes);
MinorEdit.Text := IntToStr(ItemBankFrm.CodesInfo[codeno].minorcodes);
DescriptionEdit.Text := ItemBankFrm.CodesInfo[codeno].Description;
ItemNoEdit.Text := IntToStr(ItemBankFrm.CodesInfo[codeno].codenumber);
MajorEdit.Text := IntToStr(ItemBankFrm.CodesInfo[codeno].majorcodes);
MinorEdit.Text := IntToStr(ItemBankFrm.CodesInfo[codeno].minorcodes);
DescriptionEdit.Text := ItemBankFrm.CodesInfo[codeno].Description;
end;
end;
@ -121,30 +124,25 @@ end;
procedure TCodesForm.FormCreate(Sender: TObject);
begin
Assert(ItemBankFrm <> nil);
if OutputFrm = nil then
Application.CreateForm(TOutputFrm, OutputFrm);
if ItemBankFrm = nil then
Application.CreateForm(TItemBankFrm, ItemBankFrm);
end;
procedure TCodesForm.FormShow(Sender: TObject);
Var ncodes : integer;
var
ncodes: integer;
begin
if ItemBankFrm.NItemCodesText.Text <> '' then
begin
ncodes := StrToInt(ItemBankFrm.NItemCodesText.Text);
ItemNoEdit.Text := IntToStr(ItemBankFrm.CodesInfo[ncodes].codenumber);
MajorEdit.Text := IntToStr(ItemBankFrm.CodesInfo[ncodes].majorcodes) ;
MinorEdit.Text := IntToStr(ItemBankFrm.CodesInfo[ncodes].minorcodes);
DescriptionEdit.Text := ItemBankFrm.CodesInfo[ncodes].Description;
ncodes := StrToInt(ItemBankFrm.NItemCodesText.Text);
ItemNoEdit.Text := IntToStr(ItemBankFrm.CodesInfo[ncodes].codenumber);
MajorEdit.Text := IntToStr(ItemBankFrm.CodesInfo[ncodes].majorcodes) ;
MinorEdit.Text := IntToStr(ItemBankFrm.CodesInfo[ncodes].minorcodes);
DescriptionEdit.Text := ItemBankFrm.CodesInfo[ncodes].Description;
end else
begin
ItemNoEdit.Text := '1';
MajorEdit.Text := '1';
MinorEdit.Text := '0';
DescriptionEdit.Text := '';
ItemNoEdit.Text := '1';
MajorEdit.Text := '1';
MinorEdit.Text := '0';
DescriptionEdit.Text := '';
end;
end;
@ -155,23 +153,24 @@ end;
procedure TCodesForm.StartNewBtnClick(Sender: TObject);
var
currentno : integer;
newnumber : integer;
currentno: integer;
newnumber: integer;
begin
currentno := StrToInt(ItemNoEdit.Text);
newnumber := currentno + 1;
ItemNoEdit.Text := IntToStr(newnumber);
currentno := StrToInt(MinorEdit.Text);
newnumber := currentno + 1;
MinorEdit.Text := IntToStr(newnumber);
DescriptionEdit.Text := '';
if newnumber > StrToInt(ItemBankFrm.NItemCodesText.Text) then
begin
ItemBankFrm.NItemCodesText.Text := IntToStr(newnumber);
ItemBankFrm.CodesInfo[newnumber].codenumber := newnumber;
end;
currentno := StrToInt(ItemNoEdit.Text);
newnumber := currentno + 1;
ItemNoEdit.Text := IntToStr(newnumber);
currentno := StrToInt(MinorEdit.Text);
newnumber := currentno + 1;
MinorEdit.Text := IntToStr(newnumber);
DescriptionEdit.Text := '';
if newnumber > StrToInt(ItemBankFrm.NItemCodesText.Text) then
begin
ItemBankFrm.NItemCodesText.Text := IntToStr(newnumber);
ItemBankFrm.CodesInfo[newnumber].codenumber := newnumber;
end;
end;
initialization
{$I itemcodesunit.lrs}

View File

@ -82,16 +82,18 @@ var
implementation
uses
ItemBankingUnit;
Utils, ItemBankingUnit;
{ TMatchItemForm }
procedure TMatchItemForm.jpegBrowseBtnClick(Sender: TObject);
VAR
JPEG : TJPEGImage;
JPEG: TJPEGImage;
begin
OpenPictureDialog1.Options := OpenPictureDialog1.Options+[ofFileMustExist];
if not OpenPictureDialog1.Execute then exit;
if not OpenPictureDialog1.Execute then
exit;
try
JPEG := TJPEGImage.Create;
try
@ -103,7 +105,7 @@ begin
except
on E: Exception do begin
Image1.Picture.Clear;
MessageDlg('Error','Error: '+E.Message,mtError,[mbOk],0);
ErrorMsg(E.Message);
end;
end;
Image1.Proportional := true;
@ -111,59 +113,58 @@ end;
procedure TMatchItemForm.PreviousBtnClick(Sender: TObject);
Var
response : string;
itemno : integer;
JPEG : TJPEGImage;
noleft, noright : integer;
response: string;
itemno: integer;
JPEG: TJPEGImage;
noleft, noright: integer;
begin
response := InputBox('Code Number:','Number:','1');
response := InputBox('Code Number:', 'Number:', '1');
itemno := StrToInt(response);
if itemno <= ItemBankFrm.BankInfo.NMatchItems then
begin
Image1.Canvas.Clear;
ItemNoEdit.Text := IntToStr(ItemBankFrm.MatchInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.MatchInfo[itemno].majorcode);
MinorCodeEdit.Text := IntToStr(ItemBankFrm.MatchInfo[itemno].minorcode);
noleft := ItemBankFrm.MatchInfo[itemno].NLeft;
noright := ItemBankFrm.MatchInfo[itemno].NRight;
if noleft > 0 then Left1Edit.Text := ItemBankFrm.MatchInfo[itemno].Left1;
if noleft > 1 then Left2Edit.Text := ItemBankFrm.MatchInfo[itemno].Left2;
if noleft > 2 then Left3Edit.Text := ItemBankFrm.MatchInfo[itemno].Left3;
if noleft > 3 then Left4Edit.Text := ItemBankFrm.MatchInfo[itemno].Left4;
if noleft > 4 then Left5Edit.Text := ItemBankFrm.MatchInfo[itemno].Left5;
if noright > 0 then Right1Edit.Text := ItemBankFrm.MatchInfo[itemno].Right1;
if noright > 1 then Right2Edit.Text := ItemBankFrm.MatchInfo[itemno].Right2;
if noright > 2 then Right3Edit.Text := ItemBankFrm.MatchInfo[itemno].Right3;
if noright > 3 then Right4Edit.Text := ItemBankFrm.MatchInfo[itemno].Right4;
if noright > 4 then Right5Edit.Text := ItemBankFrm.MatchInfo[itemno].Right5;
AnswerEdit.Text := ItemBankFrm.MatchInfo[itemno].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.MatchInfo[itemno].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;
Image1.Canvas.Clear;
ItemNoEdit.Text := IntToStr(ItemBankFrm.MatchInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.MatchInfo[itemno].majorcode);
MinorCodeEdit.Text := IntToStr(ItemBankFrm.MatchInfo[itemno].minorcode);
noleft := ItemBankFrm.MatchInfo[itemno].NLeft;
noright := ItemBankFrm.MatchInfo[itemno].NRight;
if noleft > 0 then Left1Edit.Text := ItemBankFrm.MatchInfo[itemno].Left1;
if noleft > 1 then Left2Edit.Text := ItemBankFrm.MatchInfo[itemno].Left2;
if noleft > 2 then Left3Edit.Text := ItemBankFrm.MatchInfo[itemno].Left3;
if noleft > 3 then Left4Edit.Text := ItemBankFrm.MatchInfo[itemno].Left4;
if noleft > 4 then Left5Edit.Text := ItemBankFrm.MatchInfo[itemno].Left5;
if noright > 0 then Right1Edit.Text := ItemBankFrm.MatchInfo[itemno].Right1;
if noright > 1 then Right2Edit.Text := ItemBankFrm.MatchInfo[itemno].Right2;
if noright > 2 then Right3Edit.Text := ItemBankFrm.MatchInfo[itemno].Right3;
if noright > 3 then Right4Edit.Text := ItemBankFrm.MatchInfo[itemno].Right4;
if noright > 4 then Right5Edit.Text := ItemBankFrm.MatchInfo[itemno].Right5;
AnswerEdit.Text := ItemBankFrm.MatchInfo[itemno].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.MatchInfo[itemno].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;
end;
end;
procedure TMatchItemForm.ReturnBtnClick(Sender: TObject);
begin
MatchItemForm.Hide;
Close;
end;
procedure TMatchItemForm.ItemSaveBtnClick(Sender: TObject);
var
currentno : integer;
count : integer;
noleft, noright : integer;
currentno: integer;
count: integer;
noleft, noright: integer;
begin
count := ItemBankFrm.BankInfo.NMatchItems;
currentno := StrToInt(ItemNoEdit.Text);
@ -204,10 +205,10 @@ begin
end;
procedure TMatchItemForm.FormShow(Sender: TObject);
Var
nitems : integer;
noleft, noright : integer;
JPEG : TJPEGImage;
var
nitems: integer;
noleft, noright: integer;
JPEG: TJPEGImage;
begin
Image1.Canvas.Clear;
Left1Edit.Text := '';
@ -224,139 +225,105 @@ begin
if ItemBankFrm.BankInfo.NMatchItems > 0 then
begin
nitems := ItemBankFrm.BankInfo.NMatchItems;
ItemNoEdit.Text := '1'; //IntToStr(ItemBankFrm.TFItemInfo[1].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.MatchInfo[1].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.MatchInfo[1].minorcode);
noleft := ItemBankFrm.MatchInfo[1].NLeft;
if noleft > 0 then Left1Edit.Text := ItemBankFrm.MatchInfo[1].Left1 ;
if noleft > 1 then Left2Edit.Text := ItemBankFrm.MatchInfo[1].Left2 ;
if noleft > 2 then Left3Edit.Text := ItemBankFrm.MatchInfo[1].Left3 ;
if noleft > 3 then Left4Edit.Text := ItemBankFrm.MatchInfo[1].Left4 ;
if noleft > 4 then Left5Edit.Text := ItemBankFrm.MatchInfo[1].Left5 ;
noright := ItemBankFrm.MatchInfo[1].NRight;
if noright > 0 then Right1Edit.Text := ItemBankFrm.MatchInfo[1].Right1 ;
if noright > 1 then Right2Edit.Text := ItemBankFrm.MatchInfo[1].Right2 ;
if noright > 2 then Right3Edit.Text := ItemBankFrm.MatchInfo[1].Right3 ;
if noright > 3 then Right4Edit.Text := ItemBankFrm.MatchInfo[1].Right4 ;
if noright > 4 then Right5Edit.Text := ItemBankFrm.MatchInfo[1].Right5 ;
AnswerEdit.Text := ItemBankFrm.MatchInfo[1].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.MatchInfo[1].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegNameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;
nitems := ItemBankFrm.BankInfo.NMatchItems;
ItemNoEdit.Text := '1'; //IntToStr(ItemBankFrm.TFItemInfo[1].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.MatchInfo[1].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.MatchInfo[1].minorcode);
noleft := ItemBankFrm.MatchInfo[1].NLeft;
if noleft > 0 then Left1Edit.Text := ItemBankFrm.MatchInfo[1].Left1 ;
if noleft > 1 then Left2Edit.Text := ItemBankFrm.MatchInfo[1].Left2 ;
if noleft > 2 then Left3Edit.Text := ItemBankFrm.MatchInfo[1].Left3 ;
if noleft > 3 then Left4Edit.Text := ItemBankFrm.MatchInfo[1].Left4 ;
if noleft > 4 then Left5Edit.Text := ItemBankFrm.MatchInfo[1].Left5 ;
noright := ItemBankFrm.MatchInfo[1].NRight;
if noright > 0 then Right1Edit.Text := ItemBankFrm.MatchInfo[1].Right1 ;
if noright > 1 then Right2Edit.Text := ItemBankFrm.MatchInfo[1].Right2 ;
if noright > 2 then Right3Edit.Text := ItemBankFrm.MatchInfo[1].Right3 ;
if noright > 3 then Right4Edit.Text := ItemBankFrm.MatchInfo[1].Right4 ;
if noright > 4 then Right5Edit.Text := ItemBankFrm.MatchInfo[1].Right5 ;
AnswerEdit.Text := ItemBankFrm.MatchInfo[1].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.MatchInfo[1].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegNameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;
end else
begin
ItemNoEdit.Text := '1';
MajorCodeEdit.Text := '1';
MinorCodeEdit.Text := '0';
Left1Edit.Text := '';
Left2Edit.Text := '';
Left3Edit.Text := '';
Left4Edit.Text := '';
Left5Edit.Text := '';
Right1Edit.Text := '';
Right2Edit.Text := '';
Right3Edit.Text := '';
Right3Edit.Text := '';
Right5Edit.Text := '';
AnswerEdit.Text := '';
jpegnameEdit.Text := 'none';
Image1.Picture.Clear;
ItemNoEdit.Text := '1';
MajorCodeEdit.Text := '1';
MinorCodeEdit.Text := '0';
Left1Edit.Text := '';
Left2Edit.Text := '';
Left3Edit.Text := '';
Left4Edit.Text := '';
Left5Edit.Text := '';
Right1Edit.Text := '';
Right2Edit.Text := '';
Right3Edit.Text := '';
Right3Edit.Text := '';
Right5Edit.Text := '';
AnswerEdit.Text := '';
jpegnameEdit.Text := 'none';
Image1.Picture.Clear;
end;
end;
procedure TMatchItemForm.CodeBrowseBtnClick(Sender: TObject);
var
count : integer;
i : integer;
outline : string;
noleft, noright : integer;
i: integer;
noleft, noright: integer;
lReport: TStrings;
begin
OutputFrm.RichEdit.Clear;
count := ItemBankFrm.BankInfo.NMatchItems ;
OutputFrm.RichEdit.Lines.Add('Current Items');
OutputFrm.RichEdit.Lines.Add('');
lReport := TStringList.Create;
try
lReport.Add('Current Items');
lReport.Add('');
for i := 1 to count do
begin
noleft := ItemBankFrm.MatchInfo[i].NLeft;
noright := ItemBankFrm.MatchInfo[i].NRight;
outline := format('Item number %3d',[ItemBankFrm.MatchInfo[i].itemnumber]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Major Code %3d',[ItemBankFrm.MatchInfo[i].majorcode]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Minor Code %3d',[ItemBankFrm.MatchInfo[i].minorcode]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('No. Left items = %3d, No. Right items = %3d',
[ItemBankFrm.MatchInfo[i].NLeft,ItemBankFrm.MatchInfo[i].NRight]);
OutputFrm.RichEdit.Lines.Add(outline);
if noleft > 0 then
begin
outline := format('Left Item 1 %s',[ItemBankFrm.MatchInfo[i].Left1]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
if noright > 0 then
begin
outline := format(' Right Item 1 %s',[ItemBankFrm.MatchInfo[i].Right1]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
if noleft > 1 then
begin
outline := format('Left Item 2 %s',[ItemBankFrm.MatchInfo[i].Left2]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
if noright > 1 then
begin
outline := format(' Right Item 2 %s',[ItemBankFrm.MatchInfo[i].Right2]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
if noleft > 2 then
begin
outline := format('Left Item 3 %s',[ItemBankFrm.MatchInfo[i].Left3]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
if noright > 2 then
begin
outline := format(' Right Item 3 %s',[ItemBankFrm.MatchInfo[i].Right3]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
if noleft > 3 then
begin
outline := format('Left Item 4 %s',[ItemBankFrm.MatchInfo[i].Left4]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
if noright > 3 then
begin
outline := format(' Right Item 4 %s',[ItemBankFrm.MatchInfo[i].Right4]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
if noleft > 4 then
begin
outline := format('Left Item 5 %s',[ItemBankFrm.MatchInfo[i].Left5]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
if noright > 4 then
begin
outline := format(' Right Item 5 %s',[ItemBankFrm.MatchInfo[i].Right5]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
outline := format('Correct Choice %s',[ItemBankFrm.MatchInfo[i].CorrectChoice]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Graphic Image %s',[ItemBankFrm.MatchInfo[i].PicName]);
OutputFrm.RichEdit.Lines.Add(outline);
OutputFrm.RichEdit.Lines.Add('');
for i := 1 to ItemBankFrm.BankInfo.NMatchItems do
begin
noleft := ItemBankFrm.MatchInfo[i].NLeft;
noright := ItemBankFrm.MatchInfo[i].NRight;
lReport.Add('Item number %d',[ItemBankFrm.MatchInfo[i].itemnumber]);
lReport.Add('Major Code %d',[ItemBankFrm.MatchInfo[i].majorcode]);
lReport.Add('Minor Code %d',[ItemBankFrm.MatchInfo[i].minorcode]);
lReport.Add('No. Left items: %d', [ItemBankFrm.MatchInfo[i].NLeft]);
lReport.Add('No. Right items: %d', [ItemBankFrm.MatchInfo[i].NRight]);
if noleft > 0 then
lReport.Add('Left Item 1 %s',[ItemBankFrm.MatchInfo[i].Left1]);
if noright > 0 then
lReport.Add(' Right Item 1 %s',[ItemBankFrm.MatchInfo[i].Right1]);
if noleft > 1 then
lReport.Add('Left Item 2 %s',[ItemBankFrm.MatchInfo[i].Left2]);
if noright > 1 then
lReport.Add(' Right Item 2 %s',[ItemBankFrm.MatchInfo[i].Right2]);
if noleft > 2 then
lReport.Add('Left Item 3 %s',[ItemBankFrm.MatchInfo[i].Left3]);
if noright > 2 then
lReport.Add(' Right Item 3 %s',[ItemBankFrm.MatchInfo[i].Right3]);
if noleft > 3 then
lReport.Add('Left Item 4 %s',[ItemBankFrm.MatchInfo[i].Left4]);
if noright > 3 then
lReport.Add(' Right Item 4 %s',[ItemBankFrm.MatchInfo[i].Right4]);
if noleft > 4 then
lReport.Add('Left Item 5 %s',[ItemBankFrm.MatchInfo[i].Left5]);
if noright > 4 then
lReport.Add(' Right Item 5 %s',[ItemBankFrm.MatchInfo[i].Right5]);
lReport.Add('Correct Choice %s',[ItemBankFrm.MatchInfo[i].CorrectChoice]);
lReport.Add('Graphic Image %s',[ItemBankFrm.MatchInfo[i].PicName]);
lReport.Add('');
end;
DisplayReport(lReport);
finally
lReport.Free;
end;
OutputFrm.ShowModal;
end;
procedure TMatchItemForm.FormActivate(Sender: TObject);
@ -371,9 +338,6 @@ end;
procedure TMatchItemForm.FormCreate(Sender: TObject);
begin
Assert(ItemBankFrm <> nil);
if OutputFrm = nil then
Application.CreateForm(TOutputFrm, OutputFrm);
end;
procedure TMatchItemForm.SelectImageBtnClick(Sender: TObject);
@ -383,52 +347,51 @@ end;
procedure TMatchItemForm.ShowNextBtnClick(Sender: TObject);
var
count : integer;
itemno : integer;
JPEG : TJPEGImage;
noleft, noright : integer;
count: integer;
itemno: integer;
JPEG: TJPEGImage;
noleft, noright: integer;
begin
itemno := StrToInt(ItemNoEdit.Text) + 1;
count := ItemBankFrm.BankInfo.NMatchItems;
if count <= itemno then
begin
Image1.Canvas.Clear;
ItemNoEdit.Text := IntToStr(ItemBankFrm.MatchInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.MatchInfo[itemno].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.MatchInfo[itemno].minorcode);
noleft := ItemBankFrm.MatchInfo[itemno].NLeft;
noright := ItemBankFrm.MatchInfo[itemno].NRight;
if noleft > 0 then Left1Edit.Text := ItemBankFrm.MatchInfo[itemno].Left1 ;
if noleft > 1 then Left2Edit.Text := ItemBankFrm.MatchInfo[itemno].Left2;
if noleft > 2 then Left3Edit.Text := ItemBankFrm.MatchInfo[itemno].Left3;
if noleft > 3 then Left4Edit.Text := ItemBankFrm.MatchInfo[itemno].Left4;
if noleft > 4 then Left5Edit.Text := ItemBankFrm.MatchInfo[itemno].Left5;
if noright > 0 then Right1Edit.Text := ItemBankFrm.MatchInfo[itemno].Right1;
if noright > 1 then Right2Edit.Text := ItemBankFrm.MatchInfo[itemno].Right2;
if noright > 2 then Right3Edit.Text := ItemBankFrm.MatchInfo[itemno].Right3;
if noright > 3 then Right4Edit.Text := ItemBankFrm.MatchInfo[itemno].Right4;
if noright > 4 then Right5Edit.Text := ItemBankFrm.MatchInfo[itemno].Right5;
AnswerEdit.Text := ItemBankFrm.MatchInfo[itemno].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.MatchInfo[itemno].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;
Image1.Canvas.Clear;
ItemNoEdit.Text := IntToStr(ItemBankFrm.MatchInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.MatchInfo[itemno].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.MatchInfo[itemno].minorcode);
noleft := ItemBankFrm.MatchInfo[itemno].NLeft;
noright := ItemBankFrm.MatchInfo[itemno].NRight;
if noleft > 0 then Left1Edit.Text := ItemBankFrm.MatchInfo[itemno].Left1 ;
if noleft > 1 then Left2Edit.Text := ItemBankFrm.MatchInfo[itemno].Left2;
if noleft > 2 then Left3Edit.Text := ItemBankFrm.MatchInfo[itemno].Left3;
if noleft > 3 then Left4Edit.Text := ItemBankFrm.MatchInfo[itemno].Left4;
if noleft > 4 then Left5Edit.Text := ItemBankFrm.MatchInfo[itemno].Left5;
if noright > 0 then Right1Edit.Text := ItemBankFrm.MatchInfo[itemno].Right1;
if noright > 1 then Right2Edit.Text := ItemBankFrm.MatchInfo[itemno].Right2;
if noright > 2 then Right3Edit.Text := ItemBankFrm.MatchInfo[itemno].Right3;
if noright > 3 then Right4Edit.Text := ItemBankFrm.MatchInfo[itemno].Right4;
if noright > 4 then Right5Edit.Text := ItemBankFrm.MatchInfo[itemno].Right5;
AnswerEdit.Text := ItemBankFrm.MatchInfo[itemno].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.MatchInfo[itemno].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;
end;
end;
procedure TMatchItemForm.StartNewBtnClick(Sender: TObject);
var
currentno : integer;
currentno: integer;
begin
Image1.Canvas.Clear;
currentno := ItemBankFrm.BankInfo.NMatchItems + 1;

View File

@ -80,8 +80,8 @@ uses
{ TMCItemForm }
procedure TMCItemForm.jpegBrowseBtnClick(Sender: TObject);
VAR
JPEG : TJPEGImage;
var
JPEG: TJPEGImage;
begin
OpenPictureDialog1.Options := OpenPictureDialog1.Options+[ofFileMustExist];
if not OpenPictureDialog1.Execute then exit;
@ -104,22 +104,22 @@ end;
procedure TMCItemForm.NoChoicesEditChange(Sender: TObject);
var
nochoices : integer;
nochoices: integer;
begin
nochoices := StrToInt(NoChoicesEdit.Text);
if nochoices > 0 then ChoiceAEdit.Visible := true else ChoiceAEdit.Visible := false;
if nochoices > 1 then ChoiceBEdit.Visible := true else ChoiceBEdit.Visible := false;
if nochoices > 2 then ChoiceCEdit.Visible := true else ChoiceCEdit.Visible := false;
if nochoices > 3 then ChoiceDEdit.Visible := true else ChoiceDEdit.Visible := false;
if nochoices > 4 then ChoiceEEdit.Visible := true else ChoiceEEdit.Visible := false;
nochoices := StrToInt(NoChoicesEdit.Text);
ChoiceAEdit.Visible := (nochoices > 0);
ChoiceBEdit.Visible := (nochoices > 1);
ChoiceCEdit.Visible := (nochoices > 2);
ChoiceDEdit.Visible := (nochoices > 3);
ChoiceEEdit.Visible := (nochoices > 4);
end;
procedure TMCItemForm.PreviousBtnClick(Sender: TObject);
Var
response : string;
itemno : integer;
JPEG : TJPEGImage;
nochoices : integer;
var
response: string;
itemno: integer;
JPEG: TJPEGImage;
nochoices: integer;
begin
response := InputBox('Save current item?','Save','Y');
if response = 'Y' then ItemSaveBtnClick(self);
@ -133,44 +133,43 @@ begin
itemno := StrToInt(response);
if itemno <= ItemBankFrm.BankInfo.NMCItems then
begin
nochoices := ItemBankFrm.MCItemInfo[itemno].NoChoices;
ItemNoEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[itemno].majorcode);
MinorCodeEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[itemno].minorcode);
NoChoicesEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[itemno].NoChoices);
ItemStemEdit.Text := ItemBankFrm.MCItemInfo[itemno].ItemStem ;
if nochoices > 0 then ChoiceAEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceOne;
if nochoices > 1 then ChoiceBEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceTwo;
if nochoices > 2 then ChoiceCEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceThree;
if nochoices > 3 then ChoiceDEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceFour;
if nochoices > 4 then ChoiceEEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceFive;
AnswerEdit.Text := ItemBankFrm.MCItemInfo[itemno].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.MCItemInfo[itemno].PicName;
if jpegnameEdit.Text <> 'none' then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end;
nochoices := ItemBankFrm.MCItemInfo[itemno].NoChoices;
ItemNoEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[itemno].majorcode);
MinorCodeEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[itemno].minorcode);
NoChoicesEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[itemno].NoChoices);
ItemStemEdit.Text := ItemBankFrm.MCItemInfo[itemno].ItemStem ;
if nochoices > 0 then ChoiceAEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceOne;
if nochoices > 1 then ChoiceBEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceTwo;
if nochoices > 2 then ChoiceCEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceThree;
if nochoices > 3 then ChoiceDEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceFour;
if nochoices > 4 then ChoiceEEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceFive;
AnswerEdit.Text := ItemBankFrm.MCItemInfo[itemno].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.MCItemInfo[itemno].PicName;
if jpegnameEdit.Text <> 'none' then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end;
end;
end;
procedure TMCItemForm.ReturnBtnClick(Sender: TObject);
begin
MCItemForm.Hide;
Close;
end;
procedure TMCItemForm.ItemSaveBtnClick(Sender: TObject);
var
currentno : integer;
count : integer;
nochoices : integer;
currentno: integer;
count: integer;
nochoices: integer;
begin
count := ItemBankFrm.BankInfo.NMCItems;
currentno := StrToInt(ItemNoEdit.Text);
@ -195,9 +194,9 @@ begin
end;
procedure TMCItemForm.FormShow(Sender: TObject);
Var
JPEG : TJPEGImage;
nochoices : integer;
var
JPEG: TJPEGImage;
nochoices: integer;
begin
ChoiceAEdit.Text := '';
ChoiceBEdit.Text := '';
@ -207,105 +206,86 @@ begin
Image1.Canvas.Clear;
if ItemBankFrm.BankInfo.NMCItems > 0 then
begin
ItemNoEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[1].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[1].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[1].minorcode);
nochoices := ItemBankFrm.MCItemInfo[1].NoChoices;
NoChoicesEdit.Text := IntToStr(nochoices);
ItemStemEdit.Text := ItemBankFrm.MCItemInfo[1].ItemStem;
AnswerEdit.Text := ItemBankFrm.MCItemInfo[1].CorrectChoice;
if nochoices > 0 then ChoiceAEdit.Text := ItemBankFrm.MCItemInfo[1].ChoiceOne;
if nochoices > 1 then ChoiceBEdit.Text := ItemBankFrm.MCItemInfo[1].ChoiceTwo;
if nochoices > 2 then ChoiceCEdit.Text := ItemBankFrm.MCItemInfo[1].ChoiceThree;
if nochoices > 3 then ChoiceDEdit.Text := ItemBankFrm.MCItemInfo[1].ChoiceFour;
if nochoices > 4 then ChoiceEEdit.Text := ItemBankFrm.MCItemInfo[1].ChoiceFive;
jpegnameEdit.Text := ItemBankFrm.MCItemInfo[1].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;
ItemNoEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[1].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[1].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[1].minorcode);
nochoices := ItemBankFrm.MCItemInfo[1].NoChoices;
NoChoicesEdit.Text := IntToStr(nochoices);
ItemStemEdit.Text := ItemBankFrm.MCItemInfo[1].ItemStem;
AnswerEdit.Text := ItemBankFrm.MCItemInfo[1].CorrectChoice;
if nochoices > 0 then ChoiceAEdit.Text := ItemBankFrm.MCItemInfo[1].ChoiceOne;
if nochoices > 1 then ChoiceBEdit.Text := ItemBankFrm.MCItemInfo[1].ChoiceTwo;
if nochoices > 2 then ChoiceCEdit.Text := ItemBankFrm.MCItemInfo[1].ChoiceThree;
if nochoices > 3 then ChoiceDEdit.Text := ItemBankFrm.MCItemInfo[1].ChoiceFour;
if nochoices > 4 then ChoiceEEdit.Text := ItemBankFrm.MCItemInfo[1].ChoiceFive;
jpegnameEdit.Text := ItemBankFrm.MCItemInfo[1].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;
end else
begin
ItemNoEdit.Text := '1';
MajorCodeEdit.Text := '1';
MinorCodeEdit.Text := '0';
ItemStemEdit.Text := '';
AnswerEdit.Text := '';
jpegnameEdit.Text := 'none';
Image1.Picture.Clear;
ItemNoEdit.Text := '1';
MajorCodeEdit.Text := '1';
MinorCodeEdit.Text := '0';
ItemStemEdit.Text := '';
AnswerEdit.Text := '';
jpegnameEdit.Text := 'none';
Image1.Picture.Clear;
end;
end;
procedure TMCItemForm.CodeBrowseBtnClick(Sender: TObject);
var
count : integer;
i : integer;
outline : string;
nochoices : integer;
i: integer;
outline: string;
nochoices: integer;
lReport: TStrings;
begin
OutputFrm.RichEdit.Clear;
count := ItemBankFrm.BankInfo.NMCItems;
OutputFrm.RichEdit.Lines.Add('Current Items');
OutputFrm.RichEdit.Lines.Add('');
lReport := TStringList.Create;
try
lReport.Add('Current Items');
lReport.Add('');
for i := 1 to count do
begin
ChoiceAEdit.Text := '';
ChoiceBEdit.Text := '';
ChoiceCEdit.Text := '';
ChoiceDEdit.Text := '';
ChoiceEEdit.Text := '';
nochoices := ItemBankFrm.MCItemInfo[i].NoChoices;
outline := format('Item number %3d',[ItemBankFrm.MCItemInfo[i].itemnumber]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Major Code %3d',[ItemBankFrm.MCItemInfo[i].majorcode]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Minor Code %3d',[ItemBankFrm.MCItemInfo[i].minorcode]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('No. of Choices %3d',[ItemBankFrm.MCItemInfo[i].NoChoices]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Item Stem %s',[ItemBankFrm.MCItemInfo[i].ItemStem]);
OutputFrm.RichEdit.Lines.Add(outline);
if nochoices > 0 then
begin
outline := format('Choice A %s',[ItemBankFrm.MCItemInfo[i].ChoiceOne]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
if nochoices > 1 then
begin
outline := format('Choice B %s',[ItemBankFrm.MCItemInfo[i].ChoiceTwo]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
if nochoices > 2 then
begin
outline := format('Choice C %s',[ItemBankFrm.MCItemInfo[i].ChoiceThree]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
if nochoices > 3 then
begin
outline := format('Choice D %s',[ItemBankFrm.MCItemInfo[i].ChoiceFour]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
if nochoices > 4 then
begin
outline := format('Choice E %s',[ItemBankFrm.MCItemInfo[i].ChoiceFive]);
OutputFrm.RichEdit.Lines.Add(outline);
end;
outline := format('Correct Choice %s',[ItemBankFrm.MCItemInfo[i].CorrectChoice]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Graphic Image %s',[ItemBankFrm.MCItemInfo[i].PicName]);
OutputFrm.RichEdit.Lines.Add(outline);
OutputFrm.RichEdit.Lines.Add('');
for i := 1 to ItemBankFrm.BankInfo.NMCItems do
begin
ChoiceAEdit.Text := '';
ChoiceBEdit.Text := '';
ChoiceCEdit.Text := '';
ChoiceDEdit.Text := '';
ChoiceEEdit.Text := '';
nochoices := ItemBankFrm.MCItemInfo[i].NoChoices;
lReport.Add('Item number %d', [ItemBankFrm.MCItemInfo[i].itemnumber]);
lReport.Add('Major Code %d', [ItemBankFrm.MCItemInfo[i].majorcode]);
lReport.Add('Minor Code %d', [ItemBankFrm.MCItemInfo[i].minorcode]);
lReport.Add('No. of Choices %d', [ItemBankFrm.MCItemInfo[i].NoChoices]);
lReport.Add('Item Stem %s', [ItemBankFrm.MCItemInfo[i].ItemStem]);
if nochoices > 0 then
lReport.Add('Choice A %s', [ItemBankFrm.MCItemInfo[i].ChoiceOne]);
if nochoices > 1 then
lReport.Add('Choice B %s', [ItemBankFrm.MCItemInfo[i].ChoiceTwo]);
if nochoices > 2 then
lReport.Add('Choice C %s', [ItemBankFrm.MCItemInfo[i].ChoiceThree]);
if nochoices > 3 then
lReport.Add('Choice D %s', [ItemBankFrm.MCItemInfo[i].ChoiceFour]);
if nochoices > 4 then
lReport.Add('Choice E %s', [ItemBankFrm.MCItemInfo[i].ChoiceFive]);
lReport.Add('Correct Choice %s', [ItemBankFrm.MCItemInfo[i].CorrectChoice]);
lReport.Add('Graphic Image %s', [ItemBankFrm.MCItemInfo[i].PicName]);
lReport.Add('');
end;
DisplayReport(lReport);
finally
lReport.Free;
end;
OutputFrm.ShowModal;
end;
procedure TMCItemForm.FormActivate(Sender: TObject);
@ -320,8 +300,6 @@ end;
procedure TMCItemForm.FormCreate(Sender: TObject);
begin
Assert(ItemBankFrm <> nil);
if OutputFrm = nil then
Application.CreateForm(TOutputFrm, OutputFrm);
end;
procedure TMCItemForm.SelectImageBtnClick(Sender: TObject);
@ -331,11 +309,11 @@ end;
procedure TMCItemForm.ShowNextBtnClick(Sender: TObject);
var
count : integer;
itemno : integer;
JPEG : TJPEGImage;
nochoices : integer;
response : string;
count: integer;
itemno: integer;
JPEG: TJPEGImage;
nochoices: integer;
response: string;
begin
response := InputBox('Save current item?','Save','Y');
if response = 'Y' then ItemSaveBtnClick(self);
@ -344,42 +322,42 @@ begin
count := ItemBankFrm.BankInfo.NMCItems;
if count <= itemno then
begin
ChoiceAEdit.Text := '';
ChoiceBEdit.Text := '';
ChoiceCEdit.Text := '';
ChoiceDEdit.Text := '';
ChoiceEEdit.Text := '';
nochoices := ItemBankFrm.MCItemInfo[itemno].NoChoices;
ItemNoEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[itemno].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[itemno].minorcode);
ItemStemEdit.Text := ItemBankFrm.MCItemInfo[itemno].ItemStem;
if nochoices > 0 then ChoiceAEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceOne;
if nochoices > 1 then ChoiceBEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceTwo;
if nochoices > 2 then ChoiceCEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceThree;
if nochoices > 3 then ChoiceDEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceFour;
if nochoices > 4 then ChoiceEEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceFive;
AnswerEdit.Text := ItemBankFrm.MCItemInfo[itemno].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.MCItemInfo[itemno].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;
ChoiceAEdit.Text := '';
ChoiceBEdit.Text := '';
ChoiceCEdit.Text := '';
ChoiceDEdit.Text := '';
ChoiceEEdit.Text := '';
nochoices := ItemBankFrm.MCItemInfo[itemno].NoChoices;
ItemNoEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[itemno].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[itemno].minorcode);
ItemStemEdit.Text := ItemBankFrm.MCItemInfo[itemno].ItemStem;
if nochoices > 0 then ChoiceAEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceOne;
if nochoices > 1 then ChoiceBEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceTwo;
if nochoices > 2 then ChoiceCEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceThree;
if nochoices > 3 then ChoiceDEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceFour;
if nochoices > 4 then ChoiceEEdit.Text := ItemBankFrm.MCItemInfo[itemno].ChoiceFive;
AnswerEdit.Text := ItemBankFrm.MCItemInfo[itemno].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.MCItemInfo[itemno].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;
end;
end;
procedure TMCItemForm.StartNewBtnClick(Sender: TObject);
var
currentno : integer;
response : string;
currentno: integer;
response: string;
begin
response := InputBox('Save current item?','Save','Y');
if response = 'Y' then ItemSaveBtnClick(self);

View File

@ -69,20 +69,19 @@ uses
procedure TTestSpecsForm.ReturnBtnClick(Sender: TObject);
begin
ItemBankFrm.BankInfo.TestItems := testno;
ItemBankFrm.NSpecifiedEdit.Text := IntToStr(testno);
TestSpecsForm.Hide;
Close;
ItemBankFrm.BankInfo.TestItems := testno;
ItemBankFrm.NSpecifiedEdit.Text := IntToStr(testno);
Close;
end;
procedure TTestSpecsForm.SelectItemBtnClick(Sender: TObject);
begin
testno := testno + 1;
ItemBankFrm.TestContents[testno].ItemNumber := StrToInt(ItemNoEdit.Text);
ItemBankFrm.TestContents[testno].MajorCode := StrToInt(MajorCodeEdit.Text);
ItemBankFrm.TestContents[testno].MinorCode := StrToInt(MinorCodeEdit.Text);
ItemBankFrm.TestContents[testno].ItemType := SelectedEdit.Text;
NoItemsEdit.Text := IntToStr(testno);
testno := testno + 1;
ItemBankFrm.TestContents[testno].ItemNumber := StrToInt(ItemNoEdit.Text);
ItemBankFrm.TestContents[testno].MajorCode := StrToInt(MajorCodeEdit.Text);
ItemBankFrm.TestContents[testno].MinorCode := StrToInt(MinorCodeEdit.Text);
ItemBankFrm.TestContents[testno].ItemType := SelectedEdit.Text;
NoItemsEdit.Text := IntToStr(testno);
end;
procedure TTestSpecsForm.FormShow(Sender: TObject);
@ -96,137 +95,147 @@ var
nomc, notf, nomatch, noessay, i : integer;
response : string;
begin
nomc := StrToInt(MCNoEdit.Text);
notf := StrToInt(TFNoEdit.Text);
nomatch := StrToInt(MatchNoEdit.Text);
noessay := StrToInt(EssayNoEdit.Text);
case Index of
0 : begin // Select multiple choice items
SelectedEdit.Text := 'MC';
for i := 1 to nomc do
begin
ShowMCItem(self,i);
response := InputBox('Add item to test','Add?','Y');
if response = 'Y' then SelectItemBtnClick(self) else SkipBtnClick(self);
end;
nomc := StrToInt(MCNoEdit.Text);
notf := StrToInt(TFNoEdit.Text);
nomatch := StrToInt(MatchNoEdit.Text);
noessay := StrToInt(EssayNoEdit.Text);
case Index of
0 : begin // Select multiple choice items
SelectedEdit.Text := 'MC';
for i := 1 to nomc do
begin
ShowMCItem(self,i);
response := InputBox('Add item to test','Add?','Y');
if response = 'Y' then SelectItemBtnClick(self) else SkipBtnClick(self);
end;
1 : begin // Select true or false items
SelectedEdit.Text := 'TF';
for i := 1 to notf do
begin
ShowTFItem(self,i);
response := InputBox('Add item to test','Add?','Y');
if response = 'Y' then SelectItemBtnClick(self) else SkipBtnClick(self);
end;
end;
1 : begin // Select true or false items
SelectedEdit.Text := 'TF';
for i := 1 to notf do
begin
ShowTFItem(self,i);
response := InputBox('Add item to test','Add?','Y');
if response = 'Y' then SelectItemBtnClick(self) else SkipBtnClick(self);
end;
2 : begin // Select Essay items
SelectedEdit.Text := 'Essay';
for i := 1 to noessay do
begin
ShowEssayItem(self,i);
response := InputBox('Add item to test','Add?','Y');
if response = 'Y' then SelectItemBtnClick(self) else SkipBtnClick(self);
end;
end;
2 : begin // Select Essay items
SelectedEdit.Text := 'Essay';
for i := 1 to noessay do
begin
ShowEssayItem(self,i);
response := InputBox('Add item to test','Add?','Y');
if response = 'Y' then SelectItemBtnClick(self) else SkipBtnClick(self);
end;
3 : begin // Select matching items
SelectedEdit.Text := 'Matching';
for i := 1 to nomc do
begin
ShowMatchItem(self,i);
response := InputBox('Add item to test','Add?','Y');
if response = 'Y' then SelectItemBtnClick(self) else SkipBtnClick(self);
end;
end;
3 : begin // Select matching items
SelectedEdit.Text := 'Matching';
for i := 1 to nomc do
begin
ShowMatchItem(self,i);
response := InputBox('Add item to test','Add?','Y');
if response = 'Y' then SelectItemBtnClick(self) else SkipBtnClick(self);
end;
end;
end;
end;
end;
procedure TTestSpecsForm.SkipBtnClick(Sender: TObject);
begin
ShowMessage('Item skipped');
ShowMessage('Item skipped');
end;
// ToDoo: This must be moved to OnPaint handler.
procedure TTestSpecsForm.ShowMCItem(Sender: TObject; index : integer);
var
outline : string;
nochoices : integer;
space : integer;
outline: string;
nochoices: integer;
space: integer;
begin
Panel1.Canvas.Clear;
space := Panel1.Canvas.Height div 9;
ItemNoEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[index].itemnumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[index].MajorCode);
MinorCodeEdit.Text := IntToStr(ItemBankFrm.MCItemInfo[index].MinorCode);
outline := ItemBankFrm.MCItemInfo[index].ItemStem;
Panel1.Canvas.TextOut(1,space,outline);
Panel1.Canvas.TextOut(1, space, outline);
nochoices := ItemBankFrm.MCItemInfo[index].NoChoices ;
if nochoices > 0 then
begin
outline := format('Choice A %s',[ItemBankFrm.MCItemInfo[index].ChoiceOne]);
Panel1.Canvas.TextOut(1,space*2,outline);
outline := Format('Choice A %s', [ItemBankFrm.MCItemInfo[index].ChoiceOne]);
Panel1.Canvas.TextOut(1, space*2, outline);
end;
if nochoices > 1 then
begin
outline := format('Choice B %s',[ItemBankFrm.MCItemInfo[index].ChoiceTwo]);
Panel1.Canvas.TextOut(1,space*3,outline);
outline := Format('Choice B %s', [ItemBankFrm.MCItemInfo[index].ChoiceTwo]);
Panel1.Canvas.TextOut(1, space*3, outline);
end;
if nochoices > 2 then
begin
outline := format('Choice C %s',[ItemBankFrm.MCItemInfo[index].ChoiceThree]);
Panel1.Canvas.TextOut(1,space*4,outline);
outline := Format('Choice C %s', [ItemBankFrm.MCItemInfo[index].ChoiceThree]);
Panel1.Canvas.TextOut(1, space*4, outline);
end;
if nochoices > 3 then
begin
outline := format('Choice D %s',[ItemBankFrm.MCItemInfo[index].ChoiceFour]);
Panel1.Canvas.TextOut(1,space*5,outline);
outline := Format('Choice D %s', [ItemBankFrm.MCItemInfo[index].ChoiceFour]);
Panel1.Canvas.TextOut(1, space*5, outline);
end;
if nochoices > 4 then
begin
outline := format('Choice E %s',[ItemBankFrm.MCItemInfo[index].ChoiceFive]);
Panel1.Canvas.TextOut(1,space*6,outline);
outline := Format('Choice E %s', [ItemBankFrm.MCItemInfo[index].ChoiceFive]);
Panel1.Canvas.TextOut(1, space*6, outline);
end;
outline := format('Correct Choice %s',[ItemBankFrm.MCItemInfo[index].CorrectChoice]);
Panel1.Canvas.TextOut(1,space*7,outline);
outline := format('Graphic Image %s',[ItemBankFrm.MCItemInfo[index].PicName]);
Panel1.Canvas.TextOut(1,space*8,outline);
outline := Format('Correct Choice %s', [ItemBankFrm.MCItemInfo[index].CorrectChoice]);
Panel1.Canvas.TextOut(1, space*7, outline);
outline := Format('Graphic Image %s', [ItemBankFrm.MCItemInfo[index].PicName]);
Panel1.Canvas.TextOut(1, space*8, outline);
end;
// ToDoo: This must be moved to OnPaint handler.
procedure TTestSpecsForm.ShowTFItem(Sender: TObject; index : integer);
var
outline : string;
space : integer;
outline: string;
space: integer;
begin
Panel1.Canvas.Clear;
space := Panel1.Canvas.Height div 9;
ItemNoEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[index].itemnumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[index].MajorCode);
MinorCodeEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[index].MinorCode);
outline := ItemBankFrm.TFItemInfo[index].ItemStem;
Panel1.Canvas.TextOut(1,space,outline);
outline := ItemBankFrm.TFItemInfo[index].CorrectChoice ;
Panel1.Canvas.TextOut(1,space*2,outline);
outline := ItemBankFrm.TFItemInfo[index].PicName ;
Panel1.Canvas.TextOut(1,space*3,outline);
Panel1.Canvas.TextOut(1,space,ItemBankFrm.TFItemInfo[index].ItemStem);
Panel1.Canvas.TextOut(1,space*2,ItemBankFrm.TFItemInfo[index].CorrectChoice);
Panel1.Canvas.TextOut(1,space*3,ItemBankFrm.TFItemInfo[index].PicName);
end;
// ToDo: This must be moved to OnPaint handler
procedure TTestSpecsForm.ShowEssayItem(Sender: TObject; index : integer);
var
outline : string;
space : integer;
outline: string;
space: integer;
begin
Panel1.Canvas.Clear;
space := Panel1.Canvas.Height div 9;
ItemNoEdit.Text := IntToStr(ItemBankFrm.EssayInfo[index].itemnumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[index].MajorCode);
MinorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[index].MinorCode);
outline := ItemBankFrm.EssayInfo[index].ItemStem;
Panel1.Canvas.TextOut(1,space,outline);
outline := ItemBankFrm.EssayInfo[index].Answer ;
Panel1.Canvas.TextOut(1,space*2,outline);
outline := ItemBankFrm.EssayInfo[index].PicName ;
Panel1.Canvas.TextOut(1,space*3,outline);
Panel1.Canvas.TextOut(1, space, ItemBankFrm.EssayInfo[index].ItemStem);
Panel1.Canvas.TextOut(1, space*2, ItemBankFrm.EssayInfo[index].Answer);
Panel1.Canvas.TextOut(1, space*3, ItemBankFrm.EssayInfo[index].PicName);
end;
// ToDo: This must be moved to OnPaint handler
procedure TTestSpecsForm.ShowMatchItem(Sender: TObject; index : integer);
var
outline : string;
space : integer;
noleft, noright : integer;
outline: string;
space: integer;
noleft, noright: integer;
begin
Panel1.Canvas.Clear;
noleft := ItemBankFrm.MatchInfo[index].NLeft;
@ -238,59 +247,56 @@ begin
// do left and right stems
if noleft > 0 then
begin
outline := format('Left Item 1 %s',[ItemBankFrm.MatchInfo[index].Left1]);
Panel1.Canvas.TextOut(1,space,outline);
outline := Format('Left Item 1 %s', [ItemBankFrm.MatchInfo[index].Left1]);
Panel1.Canvas.TextOut(1, space, outline);
end;
if noright > 0 then
begin
outline := format(' Right Item 1 %s',[ItemBankFrm.MatchInfo[index].Right1]);
Panel1.Canvas.TextOut(1,space*2,outline);
outline := Format(' Right Item 1 %s', [ItemBankFrm.MatchInfo[index].Right1]);
Panel1.Canvas.TextOut(1, space*2, outline);
end;
if noleft > 1 then
begin
outline := format('Left Item 2 %s',[ItemBankFrm.MatchInfo[index].Left2]);
Panel1.Canvas.TextOut(1,space*3,outline);
outline := Format('Left Item 2 %s', [ItemBankFrm.MatchInfo[index].Left2]);
Panel1.Canvas.TextOut(1, space*3, outline);
end;
if noright > 1 then
begin
outline := format(' Right Item 2 %s',[ItemBankFrm.MatchInfo[index].Right2]);
Panel1.Canvas.TextOut(1,space*4,outline);
outline := Format(' Right Item 2 %s', [ItemBankFrm.MatchInfo[index].Right2]);
Panel1.Canvas.TextOut(1, space*4, outline);
end;
if noleft > 2 then
begin
outline := format('Left Item 3 %s',[ItemBankFrm.MatchInfo[index].Left3]);
Panel1.Canvas.TextOut(1,space*5,outline);
outline := Format('Left Item 3 %s', [ItemBankFrm.MatchInfo[index].Left3]);
Panel1.Canvas.TextOut(1, space*5, outline);
end;
if noright > 2 then
begin
outline := format(' Right Item 3 %s',[ItemBankFrm.MatchInfo[index].Right3]);
Panel1.Canvas.TextOut(1,space*6,outline);
outline := Format(' Right Item 3 %s', [ItemBankFrm.MatchInfo[index].Right3]);
Panel1.Canvas.TextOut(1, space*6, outline);
end;
if noleft > 3 then
begin
outline := format('Left Item 4 %s',[ItemBankFrm.MatchInfo[index].Left4]);
Panel1.Canvas.TextOut(1,space*7,outline);
outline := Format('Left Item 4 %s', [ItemBankFrm.MatchInfo[index].Left4]);
Panel1.Canvas.TextOut(1, space*7, outline);
end;
if noright > 3 then
begin
outline := format(' Right Item 4 %s',[ItemBankFrm.MatchInfo[index].Right4]);
Panel1.Canvas.TextOut(1,space*8,outline);
outline := Format(' Right Item 4 %s', [ItemBankFrm.MatchInfo[index].Right4]);
Panel1.Canvas.TextOut(1, space*8, outline);
end;
if noleft > 4 then
begin
outline := format('Left Item 5 %s',[ItemBankFrm.MatchInfo[index].Left5]);
Panel1.Canvas.TextOut(1,space*9,outline);
outline := Format('Left Item 5 %s', [ItemBankFrm.MatchInfo[index].Left5]);
Panel1.Canvas.TextOut(1, space*9, outline);
end;
if noright > 4 then
begin
outline := format(' Right Item 5 %s',[ItemBankFrm.MatchInfo[index].Right5]);
Panel1.Canvas.TextOut(1,space*10,outline);
outline := Format(' Right Item 5 %s', [ItemBankFrm.MatchInfo[index].Right5]);
Panel1.Canvas.TextOut(1, space*10, outline);
end;
outline := ItemBankFrm.MatchInfo[index].CorrectChoice ;
Panel1.Canvas.TextOut(1,space*11,outline);
outline := ItemBankFrm.MatchInfo[index].PicName ;
Panel1.Canvas.TextOut(1,space*12,outline);
Panel1.Canvas.TextOut(1, space*11, ItemBankFrm.MatchInfo[index].CorrectChoice);
Panel1.Canvas.TextOut(1, space*12, ItemBankFrm.MatchInfo[index].PicName);
end;
initialization

View File

@ -58,59 +58,61 @@ var
TFItemForm: TTFItemForm;
implementation
uses ItemBankingUnit;
uses
Utils, ItemBankingUnit;
{ TTFItemForm }
procedure TTFItemForm.jpegBrowseBtnClick(Sender: TObject);
VAR
JPEG : TJPEGImage;
var
JPEG: TJPEGImage;
begin
OpenPictureDialog1.Options := OpenPictureDialog1.Options+[ofFileMustExist];
if not OpenPictureDialog1.Execute then exit;
try
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(OpenPictureDialog1.FileName);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
end;
except
on E: Exception do begin
MessageDlg('Error','Error: '+E.Message,mtError,[mbOk],0);
end;
end;
Image1.Proportional := true;
OpenPictureDialog1.Options := OpenPictureDialog1.Options+[ofFileMustExist];
if not OpenPictureDialog1.Execute then exit;
try
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(OpenPictureDialog1.FileName);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
end;
except
on E: Exception do
ErrorMsg(E.Message);
end;
Image1.Proportional := true;
end;
procedure TTFItemForm.PreviousBtnClick(Sender: TObject);
Var
response : string;
itemno : integer;
JPEG : TJPEGImage;
var
response: string;
itemno: integer;
JPEG: TJPEGImage;
begin
response := InputBox('Code Number:','Number:','1');
itemno := StrToInt(response);
if itemno <= ItemBankFrm.BankInfo.NTFItems then
begin
TFItemNoEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[itemno].majorcode);
MinorCodeEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[itemno].minorcode);
ItemStemEdit.Text := ItemBankFrm.TFItemInfo[itemno].ItemStem ;
AnswerEdit.Text := ItemBankFrm.TFItemInfo[itemno].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.TFItemInfo[itemno].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end;
end;
response := InputBox('Code Number:','Number:','1');
itemno := StrToInt(response);
if itemno <= ItemBankFrm.BankInfo.NTFItems then
begin
TFItemNoEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[itemno].majorcode);
MinorCodeEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[itemno].minorcode);
ItemStemEdit.Text := ItemBankFrm.TFItemInfo[itemno].ItemStem ;
AnswerEdit.Text := ItemBankFrm.TFItemInfo[itemno].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.TFItemInfo[itemno].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegnameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end;
end;
end;
procedure TTFItemForm.ReturnBtnClick(Sender: TObject);
@ -120,52 +122,50 @@ end;
procedure TTFItemForm.ItemSaveBtnClick(Sender: TObject);
var
currentno : integer;
count : integer;
currentno: integer;
count: integer;
begin
count := ItemBankFrm.BankInfo.NTFItems;
currentno := StrToInt(TFItemNoEdit.Text);
if currentno > count then
begin
ItemBankFrm.BankInfo.NTFItems := currentno;
ItemBankFrm.NTFItemsText.Text := IntToStr(currentno);
end;
ItemBankFrm.TFItemInfo[currentno].ItemNumber := currentno;
ItemBankFrm.TFItemInfo[currentno].majorcode := StrToInt(MajorCodeEdit.Text);
ItemBankFrm.TFItemInfo[currentno].minorcode := StrToInt(MinorCodeEdit.Text);
ItemBankFrm.TFItemInfo[currentno].ItemStem := ItemStemEdit.Text;
ItemBankFrm.TFItemInfo[currentno].CorrectChoice := AnswerEdit.text[1];
ItemBankFrm.TFItemInfo[currentno].PicName := jpegnameEdit.Text;
count := ItemBankFrm.BankInfo.NTFItems;
currentno := StrToInt(TFItemNoEdit.Text);
if currentno > count then
begin
ItemBankFrm.BankInfo.NTFItems := currentno;
ItemBankFrm.NTFItemsText.Text := IntToStr(currentno);
end;
ItemBankFrm.TFItemInfo[currentno].ItemNumber := currentno;
ItemBankFrm.TFItemInfo[currentno].majorcode := StrToInt(MajorCodeEdit.Text);
ItemBankFrm.TFItemInfo[currentno].minorcode := StrToInt(MinorCodeEdit.Text);
ItemBankFrm.TFItemInfo[currentno].ItemStem := ItemStemEdit.Text;
ItemBankFrm.TFItemInfo[currentno].CorrectChoice := AnswerEdit.text[1];
ItemBankFrm.TFItemInfo[currentno].PicName := jpegnameEdit.Text;
end;
procedure TTFItemForm.CodeBrowseBtnClick(Sender: TObject);
var
count : integer;
i : integer;
outline : string;
i: integer;
outline: string;
lReport: TStrings;
begin
OutputFrm.RichEdit.Clear;
count := ItemBankFrm.BankInfo.NTFItems;
OutputFrm.RichEdit.Lines.Add('Current Items');
OutputFrm.RichEdit.Lines.Add('');
lReport := TStringList.Create;
try
lReport.Add('Current Items');
lReport.Add('');
for i := 1 to count do
begin
outline := format('Item number %3d',[ItemBankFrm.TFItemInfo[i].itemnumber]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Major Code %3d',[ItemBankFrm.TFItemInfo[i].majorcode]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Minor Code %3d',[ItemBankFrm.TFItemInfo[i].minorcode]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Item Stem %s',[ItemBankFrm.TFItemInfo[i].ItemStem]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Correct Choice %s',[ItemBankFrm.TFItemInfo[i].CorrectChoice]);
OutputFrm.RichEdit.Lines.Add(outline);
outline := format('Graphic Image %s',[ItemBankFrm.TFItemInfo[i].PicName]);
OutputFrm.RichEdit.Lines.Add(outline);
OutputFrm.RichEdit.Lines.Add('');
end;
OutputFrm.ShowModal;
for i := 1 to ItemBankFrm.BankInfo.NTFItems do
begin
lReport.Add('Item number %d', [ItemBankFrm.TFItemInfo[i].itemnumber]);
lReport.Add('Major Code %d', [ItemBankFrm.TFItemInfo[i].majorcode]);
lReport.Add('Minor Code %d', [ItemBankFrm.TFItemInfo[i].minorcode]);
lReport.Add('Item Stem %s', [ItemBankFrm.TFItemInfo[i].ItemStem]);
lReport.Add('Correct Choice %s', [ItemBankFrm.TFItemInfo[i].CorrectChoice]);
lReport.Add('Graphic Image %s', [ItemBankFrm.TFItemInfo[i].PicName]);
lReport.Add('');
end;
DisplayReport(lReport);
finally
lReport.Free;
end;
end;
procedure TTFItemForm.FormActivate(Sender: TObject);
@ -180,95 +180,89 @@ end;
procedure TTFItemForm.FormCreate(Sender: TObject);
begin
Assert(ItemBankFrm <> nil);
if OutputFrm = nil then
Application.CreateForm(TOutputFrm, OutputFrm);
end;
procedure TTFItemForm.FormShow(Sender: TObject);
Var
nitems : integer;
JPEG : TJPEGImage;
var
nitems: integer;
JPEG: TJPEGImage;
begin
nitems := ItemBankFrm.BankInfo.NTFItems;
if nItems > 0 then
begin
TFItemNoEdit.Text := '1'; //IntToStr(ItemBankFrm.TFItemInfo[1].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[1].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[1].minorcode);
ItemStemEdit.Text := ItemBankFrm.TFItemInfo[1].ItemStem;
AnswerEdit.Text := ItemBankFrm.TFItemInfo[1].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.TFItemInfo[1].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegNameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;;
end else
begin
TFItemNoEdit.Text := '1';
MajorCodeEdit.Text := '1';
MinorCodeEdit.Text := '0';
ItemStemEdit.Text := '';
AnswerEdit.Text := '';
jpegnameEdit.Text := '';
Image1.Picture.Clear;
end;
nitems := ItemBankFrm.BankInfo.NTFItems;
if nItems > 0 then
begin
TFItemNoEdit.Text := '1'; //IntToStr(ItemBankFrm.TFItemInfo[1].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[1].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[1].minorcode);
ItemStemEdit.Text := ItemBankFrm.TFItemInfo[1].ItemStem;
AnswerEdit.Text := ItemBankFrm.TFItemInfo[1].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.TFItemInfo[1].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegNameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end else
Image1.Picture.Clear;;
end else
begin
TFItemNoEdit.Text := '1';
MajorCodeEdit.Text := '1';
MinorCodeEdit.Text := '0';
ItemStemEdit.Text := '';
AnswerEdit.Text := '';
jpegnameEdit.Text := '';
Image1.Picture.Clear;
end;
end;
procedure TTFItemForm.SelectImageBtnClick(Sender: TObject);
begin
jpegnameEdit.Text := OpenPictureDialog1.FileName;
jpegnameEdit.Text := OpenPictureDialog1.FileName;
end;
procedure TTFItemForm.ShowNextBtnClick(Sender: TObject);
var
count : integer;
itemno : integer;
JPEG : TJPEGImage;
count: integer;
itemno: integer;
JPEG: TJPEGImage;
begin
itemno := StrToInt(TFItemNoEdit.Text) + 1;
count := ItemBankFrm.BankInfo.NTFItems;
if count <= itemno then
begin
TFItemNoEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[itemno].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[itemno].minorcode);
ItemStemEdit.Text := ItemBankFrm.TFItemInfo[itemno].ItemStem;
AnswerEdit.Text := ItemBankFrm.TFItemInfo[itemno].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.TFItemInfo[itemno].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegNameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end;
end;
itemno := StrToInt(TFItemNoEdit.Text) + 1;
count := ItemBankFrm.BankInfo.NTFItems;
if count <= itemno then
begin
TFItemNoEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[itemno].ItemNumber);
MajorCodeEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[itemno].majorcode) ;
MinorCodeEdit.Text := IntToStr(ItemBankFrm.TFItemInfo[itemno].minorcode);
ItemStemEdit.Text := ItemBankFrm.TFItemInfo[itemno].ItemStem;
AnswerEdit.Text := ItemBankFrm.TFItemInfo[itemno].CorrectChoice;
jpegnameEdit.Text := ItemBankFrm.TFItemInfo[itemno].PicName;
if (jpegnameEdit.Text <> 'none') and FileExists(jpegNameEdit.Text) then
begin
JPEG := TJPEGImage.Create;
try
JPEG.LoadFromFile(jpegnameEdit.Text);
Image1.Picture.Assign(JPEG);
finally
JPEG.Free;
Image1.Proportional := true;
end;
end;
end;
end;
procedure TTFItemForm.StartNewBtnClick(Sender: TObject);
var
currentno : integer;
begin
currentno := ItemBankFrm.BankInfo.NTFItems + 1;
TFItemNoEdit.Text := IntToStr(currentno);
currentno := StrToInt(MinorCodeEdit.Text);
MinorCodeEdit.Text := IntToStr(currentno + 1);
ItemStemEdit.Text := '';
AnswerEdit.Text := '';
jpegnameEdit.Text := 'none';
Image1.Canvas.Clear;
TFItemNoEdit.Text := IntToStr(ItemBankFrm.BankInfo.NTFItems + 1);
MinorCodeEdit.Text := IntToStr(StrToInt(MinorCodeEdit.Text) + 1);
ItemStemEdit.Text := '';
AnswerEdit.Text := '';
jpegnameEdit.Text := 'none';
Image1.Canvas.Clear;
end;
initialization

View File

@ -3,6 +3,8 @@ object KR21Frm: TKR21Frm
Height = 227
Top = 411
Width = 289
HelpType = htKeyword
HelpKeyword = 'Kuder-Richardson21Reliability.htm'
AutoSize = True
BorderStyle = bsDialog
Caption = 'Kuder-Richarson #21'

View File

@ -1,11 +1,13 @@
object PolyDIFFrm: TPolyDIFFrm
Left = 984
Height = 413
Height = 438
Top = 356
Width = 657
HelpType = htKeyword
HelpKeyword = 'PolytomousDIFAnalysis.htm'
AutoSize = True
Caption = 'Polytomous Item DIF'
ClientHeight = 413
ClientHeight = 438
ClientWidth = 657
OnActivate = FormActivate
OnCreate = FormCreate
@ -18,7 +20,7 @@ object PolyDIFFrm: TPolyDIFFrm
AnchorSideBottom.Side = asrBottom
Left = 448
Height = 25
Top = 380
Top = 405
Width = 54
Anchors = [akRight, akBottom]
AutoSize = True
@ -36,7 +38,7 @@ object PolyDIFFrm: TPolyDIFFrm
AnchorSideBottom.Side = asrBottom
Left = 510
Height = 25
Top = 380
Top = 405
Width = 76
Anchors = [akRight, akBottom]
AutoSize = True
@ -55,7 +57,7 @@ object PolyDIFFrm: TPolyDIFFrm
AnchorSideBottom.Side = asrBottom
Left = 594
Height = 25
Top = 380
Top = 405
Width = 55
Anchors = [akRight, akBottom]
AutoSize = True
@ -74,7 +76,7 @@ object PolyDIFFrm: TPolyDIFFrm
AnchorSideBottom.Side = asrBottom
Left = 389
Height = 25
Top = 380
Top = 405
Width = 51
Anchors = [akRight, akBottom]
AutoSize = True
@ -92,7 +94,7 @@ object PolyDIFFrm: TPolyDIFFrm
AnchorSideRight.Control = Panel3
AnchorSideBottom.Control = Bevel1
Left = 8
Height = 356
Height = 381
Top = 8
Width = 437
Anchors = [akTop, akLeft, akRight, akBottom]
@ -100,7 +102,7 @@ object PolyDIFFrm: TPolyDIFFrm
BorderSpacing.Top = 8
BorderSpacing.Right = 16
BevelOuter = bvNone
ClientHeight = 356
ClientHeight = 381
ClientWidth = 437
Constraints.MinWidth = 400
TabOrder = 0
@ -129,7 +131,7 @@ object PolyDIFFrm: TPolyDIFFrm
AnchorSideBottom.Control = GroupVarEdit
Left = 249
Height = 15
Top = 296
Top = 321
Width = 94
Anchors = [akLeft, akBottom]
BorderSpacing.Bottom = 2
@ -144,7 +146,7 @@ object PolyDIFFrm: TPolyDIFFrm
AnchorSideBottom.Control = Panel1
AnchorSideBottom.Side = asrBottom
Left = 0
Height = 339
Height = 364
Top = 17
Width = 187
Anchors = [akTop, akLeft, akRight, akBottom]
@ -208,7 +210,7 @@ object PolyDIFFrm: TPolyDIFFrm
AnchorSideBottom.Control = GrpOutBtn
Left = 204
Height = 28
Top = 288
Top = 313
Width = 28
Anchors = [akLeft, akBottom]
BorderSpacing.Bottom = 4
@ -225,7 +227,7 @@ object PolyDIFFrm: TPolyDIFFrm
AnchorSideBottom.Side = asrBottom
Left = 204
Height = 28
Top = 320
Top = 345
Width = 28
Anchors = [akLeft, akBottom]
BorderSpacing.Bottom = 8
@ -243,7 +245,7 @@ object PolyDIFFrm: TPolyDIFFrm
AnchorSideBottom.Side = asrBottom
Left = 249
Height = 23
Top = 313
Top = 338
Width = 188
Anchors = [akLeft, akRight, akBottom]
BorderSpacing.Bottom = 12
@ -260,7 +262,7 @@ object PolyDIFFrm: TPolyDIFFrm
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = GrpInBtn
Left = 249
Height = 247
Height = 272
Top = 17
Width = 188
Anchors = [akTop, akLeft, akRight, akBottom]
@ -280,7 +282,7 @@ object PolyDIFFrm: TPolyDIFFrm
AnchorSideBottom.Control = CloseBtn
Left = 0
Height = 8
Top = 364
Top = 389
Width = 657
Anchors = [akLeft, akRight, akBottom]
Shape = bsBottomLine
@ -291,12 +293,12 @@ object PolyDIFFrm: TPolyDIFFrm
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Bevel1
Left = 461
Height = 364
Height = 389
Top = 0
Width = 196
Anchors = [akTop, akRight, akBottom]
BevelOuter = bvNone
ClientHeight = 364
ClientHeight = 389
ClientWidth = 196
TabOrder = 1
object Label4: TLabel

View File

@ -3,6 +3,8 @@ object RaschFrm: TRaschFrm
Height = 419
Top = 319
Width = 406
HelpType = htKeyword
HelpKeyword = 'RaschTestCalibration.htm'
AutoSize = True
Caption = 'Rasch One Parameter Item Scaling'
ClientHeight = 419

View File

@ -3,6 +3,8 @@ object SpBrFrm: TSpBrFrm
Height = 149
Top = 373
Width = 473
HelpType = htKeyword
HelpKeyword = 'Spearman-BrownProphecyReliabilit.htm'
AutoSize = True
BorderStyle = bsDialog
Caption = 'Spearman-Brown Prophecy Formula'

View File

@ -3,6 +3,8 @@ object TestGenFrm: TTestGenFrm
Height = 279
Top = 166
Width = 336
HelpType = htKeyword
HelpKeyword = 'GenerateSampleTestData.htm'
AutoSize = True
BorderStyle = bsDialog
Caption = 'Test Data Generation'