📄 列表9.4.txt
字号:
【列表9.4】程序PipeMail的代码。
unit PipeMailMain;
interface
uses
SysUtils, Types, Classes, Variants, QGraphics, QControls, QForms, QDialogs,
QStdCtrls, Libc;
type
TPipeMailMainForm = class(TForm)
Memo: TMemo;
Label1: TLabel;
Label2: TLabel;
RecipientLabel: TLabel;
SendBtn: TButton;
ExitBtn: TButton;
Label3: TLabel;
Edit: TEdit;
procedure RefreshDisplay;
procedure ExitBtnClick(Sender: TObject);
procedure MemoChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SendBtnClick(Sender: TObject);
procedure EditChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
LF = #10; { ASCII linefeed/newline }
MAILPROG = '/bin/mail'; { location of mail file }
var
PipeMailMainForm: TPipeMailMainFor
Recipient : String;
implementation
{$R *.xfm}
procedure TPipeMailMainForm.RefreshDisplay;
begin
SendBtn. Enabled := (Memo. Lines.Count> 0)
and (Length(Edit.Text) > 0);
end;
procedure TPipeMailMainForm. ExitBtnClick(Sender: TObject);
begin
Close;
end;
procedure TPipeMailMainForm. MemoChange(Sender: TObject);
begin
RefreshDisplay;
end;
procedure TPipeMaitMainForm. FormCreate(Sender: TObject);
var
PPWRec : PPasswordRecord;
uid : Integer;
begin
uid := getuid;
PPWRec := getpwuid(uid);
Recipient := PPWRec^.pw_name;
RecipientLabel.Caption := Recipient
end;
procedure TPipeMailMainForm. SendBtn lick(Sender: TObject);
var
MailFile : PIOFile;
s : String;
i : Integer;
begin
s := MAILPROG + ' -s ''' + Edit.Text + ''''+ Recipient;
MailFile := popen(PChar(s), 'w');
for i := 0 to Memo. Lines.Count - 1 do
fprintf(MailFile, PChar(Memo. Lines[i] + LF));
pclose(MailFile);
ShowMessage('Message sent to ' + Recipient + '.');
end;
procedure TPipeMailMainForm. EditChange(Sender: TObject);
begin
RefreshDisplay;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -