source: tags/1.3.9/Messg.pas

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