1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
{$INCLUDE Switches.inc}
unit Messg;
interface
uses
ScreenTools, LCLIntf, LCLType, LMessages, Messages, SysUtils, Classes,
Graphics, Controls, Forms, ButtonA, DrawDlg;
const
WM_PLAYSOUND = WM_USER;
type
TMessageKind = (mkOK, mkOKCancel, mkYesNo, mkYesNoCancel, mkOkCancelRemove,
mkOkHelp, mkModel);
TMessgDlg = class(TBaseMessgDlg)
Button1: TButtonA;
Button2: TButtonA;
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: char);
public
Kind: TMessageKind;
OpenSound: string;
private
procedure OnPlaySound(var Msg: TMessage); message WM_PLAYSOUND;
end;
var
MessgDlg: TMessgDlg;
procedure SimpleMessage(SimpleText: string);
procedure SoundMessage(SimpleText, SoundItem: string);
implementation
uses
Sound;
{$R *.lfm}
procedure TMessgDlg.FormCreate(Sender: TObject);
begin
inherited;
OpenSound := '';
end;
procedure TMessgDlg.FormShow(Sender: TObject);
begin
Button1.Visible := true;
Button2.Visible := not(Kind in [mkOK]);
if Button2.Visible then
Button1.Left := 101
else
Button1.Left := 159;
if Kind = mkYesNo then
begin
Button1.Caption := Phrases.Lookup('BTN_YES');
Button2.Caption := Phrases.Lookup('BTN_NO')
end
else
begin
Button1.Caption := Phrases.Lookup('BTN_OK');
Button2.Caption := Phrases.Lookup('BTN_CANCEL');
end;
SplitText(true);
CorrectHeight;
end;
procedure TMessgDlg.FormPaint(Sender: TObject);
begin
inherited;
if OpenSound <> '' then
PostMessage(Handle, WM_PLAYSOUND, 0, 0);
end;
procedure TMessgDlg.Button1Click(Sender: TObject);
begin
ModalResult := mrOK;
end;
procedure TMessgDlg.Button2Click(Sender: TObject);
begin
ModalResult := mrIgnore;
end;
procedure TMessgDlg.FormKeyPress(Sender: TObject; var Key: char);
begin
if Key = #13 then
ModalResult := mrOK;
// else if (Key=#27) and (Button2.Visible) then ModalResult:=mrCancel
end;
procedure SimpleMessage(SimpleText: string);
begin
with MessgDlg do
begin
MessgText := SimpleText;
Kind := mkOK;
ShowModal;
end;
end;
procedure SoundMessage(SimpleText, SoundItem: string);
begin
with MessgDlg do
begin
MessgText := SimpleText;
OpenSound := SoundItem;
Kind := mkOK;
ShowModal;
end;
end;
procedure TMessgDlg.OnPlaySound(var Msg: TMessage);
begin
Play(OpenSound);
OpenSound := '';
end;
end.
|