source upload
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
program TaskDialogTest;
|
||||
|
||||
{$I Synopse.inc} // define HASINLINE CPU32 CPU64
|
||||
|
||||
uses
|
||||
{$ifdef FPC}
|
||||
Interfaces,
|
||||
{$endif}
|
||||
Forms,
|
||||
{$I SynDprUses.inc} // use FastMM4 on older Delphi, or set FPC threads
|
||||
SysUtils,
|
||||
{$ifdef FPC}
|
||||
SynTaskDialog in '..\..\Samples\ThirdPartyDemos\Ondrej\SynTaskDialog4Lazarus\SynTaskDialog.pas',
|
||||
{$IFDEF MSWINDOWS}
|
||||
win32extra, // for TaskDialogIndirect
|
||||
{$ENDIF}
|
||||
{$else}
|
||||
SynTaskDialog,
|
||||
{$endif}
|
||||
SynCommons,
|
||||
mORMot,
|
||||
mORMotUILogin;
|
||||
|
||||
{$ifndef FPC}
|
||||
{$R *.res}
|
||||
|
||||
{$R Vista.res} // to enable XP/Vista/Seven theming
|
||||
{$endif}
|
||||
|
||||
var
|
||||
MainCounter: integer;
|
||||
|
||||
type
|
||||
TCallBack = class
|
||||
public
|
||||
class procedure TaskDialogButtonClicked(Sender: PTaskDialog; AButtonID: Integer; var ACanClose: Boolean);
|
||||
end;
|
||||
|
||||
class procedure TCallBack.TaskDialogButtonClicked(Sender: PTaskDialog;
|
||||
AButtonID: Integer; var ACanClose: Boolean);
|
||||
begin
|
||||
if AButtonID=100 then begin
|
||||
inc(MainCounter);
|
||||
Sender^.SetElementText(tdeContent,IntToStr(MainCounter));
|
||||
ACanClose := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure Test;
|
||||
var aUserName, aPassWord: string;
|
||||
Task: TTaskDialog;
|
||||
TaskEx: TTaskDialogEx;
|
||||
res: boolean;
|
||||
Enum: TTaskDialogIcon;
|
||||
begin
|
||||
ShowMessage('This is just a message');
|
||||
Task.Inst := 'Do you want to see the new dialog?';
|
||||
Task.Content := 'This is the content';
|
||||
Task.Buttons := 'Exit application without saving\nThis is not a good idea'#10+
|
||||
'Exit application with saving';
|
||||
Task.Footer := 'Made with Synopse SynTaskDialog unit';
|
||||
case Task.Execute([],100,[tdfUseCommandLinks],tiQuestion,tfiInformation) of
|
||||
101: ShowMessage('Saving settings','Blabla',false);
|
||||
100: ShowMessage('You should better save your data. You should better save your data.'+
|
||||
'You should better save your data.','Please RTFM instructions',true);
|
||||
else assert(false);
|
||||
end;
|
||||
Task.Footer := '';
|
||||
aUserName := 'user';
|
||||
res := InputQuery('Prompt','Edit the user name',aUserName);
|
||||
ShowMessage(aUserName,'You entered:',not res);
|
||||
Enum := tiQuestion;
|
||||
if InputSelectEnum('Enumeration selection','Please pick up one',
|
||||
TypeInfo(TTaskDialogIcon),Enum) then
|
||||
ShowMessage(GetEnumCaption(TypeInfo(TTaskDialogIcon),Enum),'You selected:') else
|
||||
ShowMessage('You pressed Cancel',true);
|
||||
ShowMessage('You selected Item #'+IntToStr(
|
||||
Choose('','Select one item,First,Second,Last one')+1));
|
||||
Task.Inst := 'Save file to disk ?';
|
||||
Task.Content := 'If you do not save changes, these will be lost';
|
||||
Task.Buttons := 'Save'#10'Don''t Save';
|
||||
Task.Execute([],100,[],tiQuestion);
|
||||
Task.Inst := 'Saving application settings';
|
||||
Task.Content := 'This is the content';
|
||||
Task.Buttons := '';
|
||||
Task.Radios := 'Store settings in registry'#10'Store settings in XML file';
|
||||
Task.Verify := 'Do no ask for this setting next time';
|
||||
Task.VerifyChecked := true;
|
||||
Task.Footer := 'XML file is perhaps a better choice';
|
||||
Task.Execute([],0,[],tiBlank,tfiInformation,200);
|
||||
ShowMessage(IntToStr(Task.RadioRes));
|
||||
if Task.VerifyChecked then
|
||||
ShowMessage(Task.Verify);
|
||||
TaskEx.Init; // or TaskEx := DefaultTaskDialog;
|
||||
TaskEx.Base.Title := 'Task Dialog Test';
|
||||
TaskEx.Base.Inst := 'Callback Test';
|
||||
MainCounter := 0;
|
||||
TaskEx.Base.Content := '0';
|
||||
TaskEx.Base.Buttons := 'Increment Counter';
|
||||
TaskEx.CommonButtons := [cbCancel];
|
||||
TaskEx.ButtonDef := 100;
|
||||
TaskEx.Flags := [tdfUseCommandLinks];
|
||||
TaskEx.DialogIcon := tiQuestion;
|
||||
TaskEx.OnButtonClicked := TCallBack.TaskDialogButtonClicked;
|
||||
TaskEx.Execute;
|
||||
ShowMessage(FormatString('User=% Password=%',[aUserName,aPassword]),
|
||||
not TLoginForm.Login('Title','Please login',aUserName,aPassWord,true,''));
|
||||
ShowMessage(FormatString('User=% Password=%',[aUserName,aPassword]),
|
||||
not TLoginForm.Login('Title','Please login again',aUserName,aPassWord,true,''));
|
||||
end;
|
||||
|
||||
procedure Test2;
|
||||
var
|
||||
vDialogue : TTaskDialog;
|
||||
begin
|
||||
vDialogue.Title := 'My Title';
|
||||
vDialogue.Inst := 'Lorem ipsum dolor sit amet consectetuer';
|
||||
vDialogue.Content := 'Libero interdum "' +
|
||||
'necVestibulumidsedetwisinequetinciduntMorbiAliquampedetinciduntSedsempercursusorciipsumipsumegestasProinTortortempus' +
|
||||
'" (' +
|
||||
'neque libero Curabitur Donec non Morbi et odio ' +
|
||||
'Praesent. Felis tincidunt vitae turpis malesuada fames\n\n'+
|
||||
'sodales ac Suspendisse augue Aenean. Euismod Aenean non\n\n' +
|
||||
'Morbi et vitae at hendrerit Quisque vitae accumsan. Tellus pretium adipiscing leo Curabitur\n\n' +
|
||||
'Pellentesque turpis lacus Nulla.\n\n' +
|
||||
'Curabitur faucibus risus eget nisl Lorem libero augue dui Nullam urna. Convallis';
|
||||
vDialogue.Buttons := 'Button1'#10'Button2';
|
||||
|
||||
vDialogue.Verify := 'Ne plus afficher ce message';
|
||||
vDialogue.VerifyChecked := False;
|
||||
|
||||
vDialogue.Execute([], 100, [tdfUseCommandLinks], tiWarning);
|
||||
end;
|
||||
|
||||
begin
|
||||
{$ifdef FPC}
|
||||
Application.Initialize;
|
||||
{$endif}
|
||||
Test;
|
||||
if @TaskDialogIndirect<>nil then
|
||||
begin
|
||||
ShowMessage('Now displaying the dialogs using TaskDialogIndirect');
|
||||
@TaskDialogIndirect := nil;
|
||||
Test;
|
||||
end;
|
||||
end.
|
Reference in New Issue
Block a user