⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 列表9.4.txt

📁 klinux书籍的配套光盘。可以学习学习。
💻 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 + -