Files
lazarus-ccr/components/tvplanit/source/vpwavdlg.pas

198 lines
5.8 KiB
ObjectPascal
Raw Normal View History

{*********************************************************}
{* VPWAVDLG.PAS 1.03 *}
{*********************************************************}
{* ***** BEGIN LICENSE BLOCK ***** *}
{* Version: MPL 1.1 *}
{* *}
{* The contents of this file are subject to the Mozilla Public License *}
{* Version 1.1 (the "License"); you may not use this file except in *}
{* compliance with the License. You may obtain a copy of the License at *}
{* http://www.mozilla.org/MPL/ *}
{* *}
{* Software distributed under the License is distributed on an "AS IS" basis, *}
{* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License *}
{* for the specific language governing rights and limitations under the *}
{* License. *}
{* *}
{* The Original Code is TurboPower Visual PlanIt *}
{* *}
{* The Initial Developer of the Original Code is TurboPower Software *}
{* *}
{* Portions created by TurboPower Software Inc. are Copyright (C) 2002 *}
{* TurboPower Software Inc. All Rights Reserved. *}
{* *}
{* Contributor(s): *}
{* *}
{* ***** END LICENSE BLOCK ***** *}
unit VpWavDlg;
{$I vp.inc}
interface
{$WARNINGS OFF} {Some of this stuff in here isn't platform friendly}
uses
{$IFDEF LCL}
LMessages,LCLProc,LCLType,LCLIntf,LResources,
{$ELSE}
Windows,
{$ENDIF}
Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
FileCtrl, StdCtrls, ExtCtrls, Buttons, VpBase, ComCtrls;
type
TFrmSoundDialog = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
PlayButton: TSpeedButton;
// DriveComboBox1: TDriveComboBox;
// DirectoryListBox1: TDirectoryListBox;
FileListBox1: TFileListBox;
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);
private
public
DingPath: string;
ReturnCode : TVpEditorReturnCode;
procedure Populate;
end;
function ExecuteSoundFinder(var DingPath: string): Boolean;
implementation
uses
{$IFNDEF LCL}
mmSystem,
{$ENDIF}
VpSR;
{$IFNDEF LCL}
{$R *.DFM}
{$ENDIF}
function ExecuteSoundFinder(var DingPath: string): Boolean;
var
SoundFinder: TfrmSoundDialog;
begin
Result := false;
Application.CreateForm(TfrmSoundDialog, SoundFinder);
try
SoundFinder.DingPath := DingPath;
SoundFinder.Populate;
SoundFinder.ShowModal;
if SoundFinder.ReturnCode = rtCommit then begin
if SoundFinder.CBDefault.Checked then
DingPath := ''
else
DingPath := SoundFinder.FileListBox1.FileName;
Result := true;
end;
finally
SoundFinder.Release;
end;
end;
{=====}
procedure TFrmSoundDialog.FileListBox1Change(Sender: TObject);
begin
if FileListBox1.Items.Count > 0 then begin
PlayButton.Enabled := true;
DingPath := FileListBox1.FileName;
end else begin
PlayButton.Enabled := false;
DingPath := '';
end;
end;
{=====}
procedure TFrmSoundDialog.PlayButtonClick(Sender: TObject);
begin
PlayButton.Enabled := false;
{$IFNDEF LCL}
SndPlaySound(PChar(FileListBox1.FileName), snd_Sync);
{$ENDIF}
PlayButton.Enabled := true;
end;
{=====}
procedure TFrmSoundDialog.Populate;
var
Drive: char;
begin
TabSheet1.Caption := RSSelectASound;
Self.Caption := RSSoundFinder;
CBDefault.Caption := RSDefaultSound;
OkBtn.Caption := RSOkBtn;
CancelBtn.Caption := RSCancelBtn;
if DingPath = '' then begin
CBDefault.Checked := true;
// DirectoryListBox1.Directory := ExtractFileDir(ParamStr(0));
end else begin
Drive := UpCase(ExtractFileDrive(DingPath)[1]);
if FileExists(DingPath) and (Drive in ['A'..'Z']) then begin
// DriveComboBox1.Drive := Drive;
// DirectoryListBox1.Directory := ExtractFileDir(DingPath);
FileListBox1.FileName := DingPath;
end else begin
// DirectoryListBox1.Directory := ExtractFileDir(ParamStr(0));
end;
end;
end;
{=====}
procedure TFrmSoundDialog.CBDefaultClick(Sender: TObject);
begin
// DriveComboBox1.Enabled := not CBDefault.Checked;
// DirectoryListBox1.Enabled := not CBDefault.Checked;
FileListBox1.Enabled := not CBDefault.Checked;
PlayButton.Enabled := not CBDefault.Checked;
end;
{=====}
procedure TFrmSoundDialog.FormCreate(Sender: TObject);
begin
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;
initialization
{$IFDEF LCL}
{$I vpwavdlg.lrs}
{$ENDIF}
end.