source: tags/1.2.0/Messg.pas

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