tvplanit: Cosmetic changes in WavDlg (use ModalResult)

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4745 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2016-06-14 10:33:10 +00:00
parent 8c34f2a85a
commit 4493e26898
3 changed files with 42 additions and 83 deletions

View File

@ -670,21 +670,20 @@ procedure TDlgEventEdit.SoundFinderBtnClick(Sender: TObject);
var
SoundFinder: TfrmSoundDialog;
begin
Application.CreateForm(TfrmSoundDialog, SoundFinder);
SoundFinder := TFrmSoundDialog.Create(nil);
try
SoundFinder.DingPath := AlarmWavPath;
SoundFinder.MediaFolder := Datastore.MediaFolder;
SoundFinder.OnPlaySound := DoPlaySound;
SoundFinder.Populate;
SoundFinder.ShowModal;
if SoundFinder.ReturnCode = TvpEditorReturnCode(rtCommit) then begin
if SoundFinder.ShowModal = mrOK then begin
if SoundFinder.CBDefault.Checked then
AlarmWavPath := ''
else
AlarmWavPath := SoundFinder.GetSelectedFilename;
end;
finally
SoundFinder.Release;
SoundFinder.Free;
end;
end;
{=====}

View File

@ -10,7 +10,6 @@ object FrmSoundDialog: TFrmSoundDialog
ClientWidth = 736
KeyPreview = True
OnCreate = FormCreate
OnKeyDown = FormKeyDown
Position = poScreenCenter
LCLVersion = '1.7'
object PageControl1: TPageControl
@ -102,7 +101,7 @@ object FrmSoundDialog: TFrmSoundDialog
Anchors = [akTop, akRight]
Caption = 'OkBtn'
Default = True
OnClick = OkBtnClick
ModalResult = 1
TabOrder = 0
end
object CancelBtn: TButton
@ -111,8 +110,9 @@ object FrmSoundDialog: TFrmSoundDialog
Top = 8
Width = 75
Anchors = [akTop, akRight]
Cancel = True
Caption = 'CancelBtn'
OnClick = CancelBtnClick
ModalResult = 2
TabOrder = 1
end
end

View File

@ -62,24 +62,17 @@ type
CBDefault: TCheckBox;
OkBtn: TButton;
CancelBtn: TButton;
procedure FileListBox1Change(Sender: TObject);
procedure PlayButtonClick(Sender: TObject);
procedure CBDefaultClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure OkBtnClick(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure PlayButtonClick(Sender: TObject);
private
FMediaFolder: String;
FOnPlaySound: TVpPlaySoundEvent;
function FindFileItem(AFilename: String): TListItem;
public
DingPath: string;
ReturnCode : TVpEditorReturnCode;
MediaFolder: String;
function GetSelectedFileName: String;
procedure Populate;
property MediaFolder: String read FMediaFolder write FMediaFolder;
property OnPlaySound: TVpPlaySoundEvent read FOnPlaySound write FOnPlaySound;
end;
@ -95,25 +88,13 @@ uses
{$R *.dfm}
{$ENDIF}
procedure TFrmSoundDialog.FileListBox1Change(Sender: TObject);
procedure TFrmSoundDialog.CBDefaultClick(Sender: TObject);
begin
if ShellListview.Items.Count > 0 then begin
PlayButton.Enabled := true;
DingPath := GetSelectedFileName;
end else begin
PlayButton.Enabled := false;
DingPath := '';
end;
end;
{=====}
procedure TFrmSoundDialog.PlayButtonClick(Sender: TObject);
begin
if Assigned(FOnPlaySound) then begin
PlayButton.Enabled := false;
FOnPlaySound(self, GetSelectedFileName, psmSync);
PlayButton.Enabled := true;
end;
ShellTreeview.Visible := not CBDefault.Checked;
ShellListview.Visible := not CBDefault.Checked;
Panel3.Visible := CBDefault.Checked;
Panel4.Visible := CBDefault.Checked;
PlayButton.Visible := not CBDefault.Checked;
end;
{=====}
@ -130,6 +111,32 @@ begin
Result := nil;
end;
procedure TFrmSoundDialog.FormCreate(Sender: TObject);
begin
Panel3.Align := alClient;
Panel4.Align := alClient;
end;
{=====}
function TFrmSoundDialog.GetSelectedFileName: String;
begin
if ShellListview.Selected <> nil then
Result := IncludeTrailingPathDelimiter(ShellTreeView.Path) + ShellListview.Selected.Caption
else
Result := '';
end;
procedure TFrmSoundDialog.PlayButtonClick(Sender: TObject);
begin
DingPath := GetSelectedFileName;
if Assigned(FOnPlaySound) then begin
PlayButton.Enabled := false;
FOnPlaySound(self, DingPath, psmSync);
PlayButton.Enabled := true;
end;
end;
{=====}
procedure TFrmSoundDialog.Populate;
begin
TabSheet1.Caption := RSSelectASound;
@ -141,64 +148,17 @@ begin
Panel4.Caption := RSNothingToSelectFrom;
if DingPath = '' then begin
CBDefault.Checked := true;
ShellTreeView.Path := FMediaFolder; //ExtractFileDir(ParamStr(0));
ShellTreeView.Path := MediaFolder;
end else
if FileExists(DingPath) then begin
ShellTreeview.Path := ExtractFileDir(DingPath);
ShellListview.Selected := FindFileItem(DingPath);
end else begin
ShellTreeView.Path := FMediaFolder; //ExtractFileDir(ParamStr(0));
ShellTreeView.Path := MediaFolder;
end;
CBDefaultClick(nil);
end;
{=====}
procedure TFrmSoundDialog.CBDefaultClick(Sender: TObject);
begin
ShellTreeview.Visible := not CBDefault.Checked;
ShellListview.Visible := not CBDefault.Checked;
Panel3.Visible := CBDefault.Checked;
Panel4.Visible := CBDefault.Checked;
PlayButton.Visible := not CBDefault.Checked;
end;
{=====}
procedure TFrmSoundDialog.FormCreate(Sender: TObject);
begin
Panel3.Align := alClient;
Panel4.Align := alClient;
ReturnCode := rtAbandon;
end;
{=====}
procedure TFrmSoundDialog.OkBtnClick(Sender: TObject);
begin
ReturnCode := rtCommit;
Close;
end;
{=====}
procedure TFrmSoundDialog.CancelBtnClick(Sender: TObject);
begin
Close;
end;
{=====}
procedure TFrmSoundDialog.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_ESCAPE then
Close;
end;
function TFrmSoundDialog.GetSelectedFileName: String;
begin
if ShellListview.ItemFocused <> nil then
Result := IncludeTrailingPathDelimiter(ShellTreeView.Path) + ShellListview.ItemFocused.Caption
else
Result := '';
end;
end.