Examples: TestAll: change QuestionDialog dialog test.

git-svn-id: trunk@51861 -
This commit is contained in:
bart 2016-03-08 18:37:30 +00:00
parent 7df15887d1
commit ff19675249

View File

@ -1121,14 +1121,18 @@ end;
{---------------- QuesionDialog; ----------------} {---------------- QuesionDialog; ----------------}
type
TQRange = 1..3;
const
QAnsStrings: array[TQRange] of String = (
'Appels', 'Pears', 'Programmers');
QAnsResults: array[TQRange] of Integer = (
-1, -2, -3);
type type
{ TQuesionDlgDummmy } { TQuesionDlgDummmy }
TQuesionDlgDummmy = class TQuesionDlgDummmy = class
ed: TEdit; qed, a1ed, a2ed, a3ed: TEdit;
rg: TRadioGroup; rg: TRadioGroup;
{$IFDEF QDDynSelectBtn}
cg: TCheckGroup;
{$ENDIF}
btn: TButton; btn: TButton;
lbl: TLabel; lbl: TLabel;
procedure OnBtnClick(Sender: TObject); procedure OnBtnClick(Sender: TObject);
@ -1137,99 +1141,110 @@ type
procedure TQuesionDlgDummmy.OnBtnClick(Sender: TObject); procedure TQuesionDlgDummmy.OnBtnClick(Sender: TObject);
var var
DT: TMsgDlgType; DT: TMsgDlgType;
{$IFDEF QDDynSelectBtn}
Btns: array of TMsgDlgBtn;
i: Integer;
{$ENDIF}
aMsg: TCaption; aMsg: TCaption;
Res: TModalResult; Res: TModalResult;
Ans: Array[TQRange] of String;
i: TQRange;
begin begin
DT := TMsgDlgType(rg.ItemIndex); DT := TMsgDlgType(rg.ItemIndex);
aMsg := ed.Text; aMsg := qed.Text;
if (aMsg = '') Ans[1] := a1ed.Text;
then aMsg := 'You did not enter a question'; Ans[2] := a2ed.Text;
{$IFDEF QDDynSelectBtn} Ans[3] := a3ed.Text;
setlength(Btns,0); if (aMsg = '') then
for i := 0 to cg.Items.Count - 1 do
begin begin
if cg.Checked[i] then if (Ans[1]='') and (Ans[2]='') and (Ans[3]='') then
begin
setlength(Btns,high(Btns)+2);
Btns[high(Btns)] := TMsgDlgBtn(i);
end;
end;
if high(Btns) = -1 then
begin begin
setlength(Btns,1); aMsg := 'Which fruit do you prefer?';
Btns[high(Btns)] := mbOK; for i := Low(TQRange) to High(TQRange) do Ans[i] := QAnsStrings[i];
end; end
{$ENDIF} else
Res := QuestionDlg('QuestionDlg test', aMsg, DT, [mrYes,'&Yes','isDefault',mrNo, '&No'], 0); aMsg := 'The question is undefined: answer as best as you can anyway ...';
lbl.Caption := 'Dialog result = ' + ModalResultToStr(Res); end;
for i := Low(TQRange) to High(TQRange) do
if (Ans[i] = '') then Ans[i] := Format('Undefined answer [%d]',[i]);
//Res := QuestionDlg('QuestionDlg test', aMsg, DT, [mrYes,'&Yes','isDefault',mrNo, '&No'], 0);
Res := QuestionDlg('QuestionDlg test', aMsg, DT,
[QAnsResults[1], Ans[1],
QAnsResults[2], Ans[2],
QAnsResults[3], Ans[3] ], 0);
if (-Res in [-QAnsResults[Low(QAnsResults)]..-QAnsResults[High(QAnsResults)]]) then
lbl.Caption := Format('You chose: "%s"',[Ans[-Res]])
else
lbl.Caption := 'You chose nothing';
end; end;
procedure TForm1.TestQuestionDialog; procedure TForm1.TestQuestionDialog;
var var
dummy: TQuesionDlgDummmy; dummy: TQuesionDlgDummmy;
ed: TEdit; qed, a1ed, a2ed, a3ed: TEdit;
btn: TButton; btn: TButton;
rg: TRadioGroup; rg: TRadioGroup;
mdt: TMsgDlgType; mdt: TMsgDlgType;
lbl: TLabel; lbl: TLabel;
{$IFDEF QDDynSelectBtn}
cg: TCheckGroup;
mdbtn: TMsgDlgBtn;
{$ENDIF QDDynSelectBtn}
begin begin
Clear; Clear;
ed := TEdit.Create(nil); qed := TEdit.Create(nil);
a1ed := TEdit.Create(nil);
a2ed := TEdit.Create(nil);
a3ed := TEdit.Create(nil);
rg := TRadioGroup.Create(nil); rg := TRadioGroup.Create(nil);
btn := TButton.Create(nil); btn := TButton.Create(nil);
lbl := TLabel.Create(nil); lbl := TLabel.Create(nil);
FObjList.Add(btn); FObjList.Add(btn);
FObjList.Add(ed); FObjList.Add(qed);
FObjList.Add(a1ed);
FObjList.Add(a2ed);
FObjList.Add(a3ed);
FObjList.Add(rg); FObjList.Add(rg);
FObjList.Add(lbl); FObjList.Add(lbl);
dummy := TQuesionDlgDummmy.Create; dummy := TQuesionDlgDummmy.Create;
FObjList.Add(dummy); FObjList.Add(dummy);
dummy.ed := ed; dummy.qed := qed;
dummy.a1ed := a1ed;
dummy.a2ed := a2ed;
dummy.a3ed := a3ed;
dummy.btn := btn; dummy.btn := btn;
dummy.rg := rg; dummy.rg := rg;
dummy.lbl := lbl; dummy.lbl := lbl;
{$IFDEF QDDynSelectBtn} qed.TextHint := 'Type your question here';
cg := TCheckGroup.Create(nil); qed.Left := 5;
FObjList.Add(cg); qed.Top := 10;
dummy.cg := cg; qed.Width := TestPnl.Width - 2*5;
{$ENDIF QDDynSelectBtn} qed.Parent := TestPnl;
ed.TextHint := 'Type your question here';
ed.Parent := TestPnl; a1ed.Left := qed.Left;
ed.Left := 5; a1ed.Width := qed.Width;
ed.Top := 10; a1ed.Top := qed.Top + qed.Height + 10;
ed.Width := TestPnl.Width - 2*5; a1ed.MaxLength := 40;
//a1ed.Text := QAnsStrings[1];
a1ed.TextHint := 'Type the first answer here';
a1ed.Parent := TestPnl;
a2ed.Left := a1ed.Left;
a2ed.Width := qed.Width;
a2ed.Top := a1ed.Top + a1ed.Height + 10;
a2ed.MaxLength := 40;
//a2ed.Text := QAnsStrings[2];
a2ed.TextHint := 'Type the second answer here';
a2ed.Parent := TestPnl;
a3ed.Left := a2ed.Left;
a3ed.Width := qed.Width;
a3ed.Top := a2ed.Top + a2ed.Height + 10;
a3ed.MaxLength := 40;
//a3ed.Text := QAnsStrings[3];
a3ed.TextHint := 'Type the third answer here';
a3ed.Parent := TestPnl;
{$IFDEF QDDynSelectBtn}
cg := TCheckGroup.Create(nil);
for mdbtn := Low(TMsgDlgBtn) to High(TMsgDlgBtn) do
cg.Items.Add(MsgDlgBtnStr[mdbtn]);
cg.Caption := 'Buttons';
cg.AutoSize := True;
cg.Parent := TestPnl;
cg.Left := 5;
cg.Top := ed.Top + ed.Height + 10;
{$ENDIF}
rg.Caption := 'DialogType'; rg.Caption := 'DialogType';
for mdt := Low(TMsgDlgType) to high(TMsgDlgType) do for mdt := Low(TMsgDlgType) to high(TMsgDlgType) do
rg.items.Add(MsgDlgTypeStr[mdt]); rg.items.Add(MsgDlgTypeStr[mdt]);
rg.AutoSize := True; rg.AutoSize := True;
rg.ItemIndex := Ord(mtInformation); rg.ItemIndex := Ord(mtConfirmation);
{$IFDEF QDDynSelectBtn} rg.Left := qed.Left;
rg.Left := cg.Left + cg.Width + 20; rg.Top := a3ed.Top + a3ed.Height + 10;
rg.Top := cg.Top;
{$ELSE}
rg.Left := 5;
rg.Top := ed.Top + ed.Height + 10;
{$ENDIF}
rg.Parent := TestPnl; rg.Parent := TestPnl;
btn.OnClick := @dummy.OnBtnClick; btn.OnClick := @dummy.OnBtnClick;
@ -1239,8 +1254,8 @@ begin
btn.Left := rg.Left; btn.Left := rg.Left;
btn.Parent := TestPnl; btn.Parent := TestPnl;
lbl.Top := Btn.Top + Btn.Height + 10; lbl.Top := btn.Top;
lbl.Left := Btn.Left; lbl.Left := btn.Left + btn.Width + 10;;
lbl.Caption := ''; lbl.Caption := '';
lbl.Parent := TestPnl; lbl.Parent := TestPnl;
end; end;