mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-15 14:39:13 +02:00
Examples: TestAll: change QuestionDialog dialog test.
git-svn-id: trunk@51861 -
This commit is contained in:
parent
7df15887d1
commit
ff19675249
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user