PeSound.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:2k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit PeSound;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   StdCtrls, DesignIntf, DesignEditors;
  6. type
  7.   TSoundProperty = class (TStringProperty)
  8.   public
  9.     function GetAttributes: TPropertyAttributes; override;
  10.     procedure GetValues(Proc: TGetStrProc); override;
  11.     procedure Edit; override;
  12.   end;
  13. procedure Register;
  14. implementation
  15. uses
  16.   MdSounB, // component unit
  17.   PeFSound; // sound editor form
  18. function TSoundProperty.GetAttributes:
  19.   TPropertyAttributes;
  20. begin
  21.   // allow direct editing and multiple selection
  22.   Result := [paDialog, paMultiSelect, paValueList, paSortList];
  23. end;
  24. procedure TSoundProperty.GetValues(Proc: TGetStrProc);
  25. begin
  26.   // provide a list of system sounds
  27.   Proc ('Maximize');
  28.   Proc ('Minimize');
  29.   Proc ('MenuCommand');
  30.   Proc ('MenuPopup');
  31.   Proc ('RestoreDown');
  32.   Proc ('RestoreUp');
  33.   Proc ('SystemAsterisk');
  34.   Proc ('SystemDefault');
  35.   Proc ('SystemExclamation');
  36.   Proc ('SystemExit');
  37.   Proc ('SystemHand');
  38.   Proc ('SystemQuestion');
  39.   Proc ('SystemStart');
  40.   Proc ('AppGPFault');
  41. end;
  42. procedure TSoundProperty.Edit;
  43. begin
  44.   SoundForm := TSoundForm.Create (Application);
  45.   try
  46.     SoundForm.ComboBox1.Text := GetValue;
  47.     // show the dialog box
  48.     if SoundForm.ShowModal = mrOK then
  49.       SetValue (SoundForm.ComboBox1.Text);
  50.   finally
  51.     SoundForm.Free;
  52.   end;
  53. end;
  54. procedure Register;
  55. begin
  56.   RegisterPropertyEditor (TypeInfo(string),
  57.     TMdSoundButton, 'SoundUp', TSoundProperty);
  58.   RegisterPropertyEditor (TypeInfo(string),
  59.     TMdSoundButton, 'SoundDown', TSoundProperty);
  60. end;
  61. end.