File: Messg.pas

package info (click to toggle)
c-evo-dh 3.1-2
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 10,548 kB
  • sloc: pascal: 57,426; xml: 256; makefile: 114; sh: 4
file content (127 lines) | stat: -rw-r--r-- 2,556 bytes parent folder | download | duplicates (3)
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.