Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.47 KB | None | 0 0
  1. unit Unit2;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, ActnList, ImgList, ActnCtrls, ToolWin, ActnMan, ActnMenus,
  8. PlatformDefaultStyleActnCtrls, ComCtrls, StdCtrls, Buttons, ExtCtrls,
  9. IdMessage, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  10. IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdSMTP, inifiles,
  11. ExtDlgs, RpDefine, RpRave, idAttachmentfile;
  12.  
  13. type
  14. TForm2 = class(TForm)
  15. ToolBar1: TToolBar;
  16. Panel1: TPanel;
  17. ComboBox1: TComboBox;
  18. SpeedButton1: TSpeedButton;
  19. Edit1: TEdit;
  20. Edit2: TEdit;
  21. StatusBar1: TStatusBar;
  22. memo: TMemo;
  23. IdSMTP1: TIdSMTP;
  24. IdMessage1: TIdMessage;
  25. Label1: TLabel;
  26. Panel2: TPanel;
  27. CBName: TComboBox;
  28. CBPitch: TComboBox;
  29. FontDialog1: TFontDialog;
  30. ColorDialog1: TColorDialog;
  31. Button1: TButton;
  32. Button2: TButton;
  33. Button3: TButton;
  34. Button4: TButton;
  35. Label2: TLabel;
  36. Label3: TLabel;
  37. SpeedButton3: TSpeedButton;
  38. SpeedButton2: TSpeedButton;
  39. SaveDialog1: TSaveDialog;
  40. SpeedButton4: TSpeedButton;
  41. RvProject1: TRvProject;
  42. ProgressBar1: TProgressBar;
  43.  
  44. procedure SpeedButton3Click(Sender: TObject);
  45. procedure FormCreate(Sender: TObject);
  46. procedure CBNameChange(Sender: TObject);
  47. procedure SpeedButton2Click(Sender: TObject);
  48. procedure SpeedButton4Click(Sender: TObject);
  49. procedure IdSMTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  50. AWorkCountMax: Int64);
  51. procedure IdSMTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  52. AWorkCount: Int64);
  53. procedure IdSMTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
  54. procedure IdSMTP1Status(ASender: TObject; const AStatus: TIdStatus;
  55. const AStatusText: string);
  56. procedure ShowStatus(StatusText: String);
  57.  
  58. private
  59. { Private declarations }
  60. public
  61. { Public declarations }
  62. end;
  63.  
  64. var
  65. Form2: TForm2;
  66. ini: Tinifile;
  67. mes: TidMessage;
  68. attach: TidAttachmentFile;
  69. implementation
  70.  
  71. uses Unit4;
  72.  
  73. {$R *.dfm}
  74. procedure TForm2.CBNameChange(Sender: TObject);
  75. begin
  76. Memo.Font.Name := CBName.Items[CBName.ItemIndex];
  77. end;
  78.  
  79. procedure TForm2.FormCreate(Sender: TObject);
  80. var i: integer;
  81. begin
  82. ini := Tinifile.Create(ExtractFilePath(Application.ExeName)+'fcon.ini');
  83. label1.Caption :='Яндекс';
  84. ProgressBar1.Top := 5;
  85. ProgressBar1.Width := 193;
  86. ProgressBar1.Left := 40;
  87. ProgressBar1.Height := 13;
  88. ProgressBar1.Parent := StatusBar1;
  89. begin
  90. end;
  91. //Загрузка в CBName всех шрифтов системы
  92. for i := 0 to Screen.Fonts.Count - 1 do
  93. CBName.Items.Add(Screen.Fonts[i]);
  94. CBName.ItemIndex := 0;
  95. CBPitch.ItemIndex := 0;
  96. //Загрузка в Memo1 имени первого шрифта
  97. Memo.Font.Name := CBName.Items[CBName.ItemIndex];
  98. end;
  99.  
  100. procedure TForm2.IdSMTP1Status(ASender: TObject; const AStatus: TIdStatus;
  101. const AStatusText: string);
  102. begin
  103. ShowStatus(AStatusText);
  104. end;
  105.  
  106. procedure TForm2.IdSMTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  107. AWorkCount: Int64);
  108. begin
  109. If AWorkMode = wmWrite Then ProgressBar1.Position := AWorkCount;
  110. Application.ProcessMessages;
  111. end;
  112.  
  113. procedure TForm2.IdSMTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  114. AWorkCountMax: Int64);
  115. Var
  116. S: TMemoryStream;
  117. Begin
  118. If AWorkMode <> wmWrite then Exit; // send process
  119. S := TMemoryStream.Create;
  120. Try
  121. mes.SaveToStream(S, False);
  122. ProgressBar1.Min := 0;
  123. ProgressBar1.Position := 0;
  124. ProgressBar1.Max := S.Size;
  125. S.Clear;
  126. mes.SaveToStream(S, True);
  127. ProgressBar1.Max := ProgressBar1.Max - S.Size;
  128. Finally
  129. S.Free;
  130. End;
  131. Application.ProcessMessages;
  132. end;
  133.  
  134. procedure TForm2.IdSMTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
  135. begin
  136. If AWorkMode = wmWrite Then ProgressBar1.Position := 0;
  137. Application.ProcessMessages;
  138. end;
  139.  
  140. procedure TForm2.ShowStatus(StatusText: String);
  141. begin
  142. StatusBar1.SimpleText := StatusText;
  143. Application.ProcessMessages;
  144. end;
  145.  
  146. procedure TForm2.SpeedButton2Click(Sender: TObject);
  147. begin
  148. if SaveDialog1.Execute then
  149. Memo.Lines.SaveToFile(SaveDialog1.FileName + '.txt'); // здесь сохраняться с memo будет, а надо так, как в низу написано...
  150. end;
  151.  
  152. procedure TForm2.SpeedButton3Click(Sender: TObject);
  153. begin
  154. with IdSMTP1 do
  155. begin
  156. if (Edit1.Text='') then
  157. begin
  158. ShowMessage ('Вы не заполнили необходимые поля')
  159. end
  160. else
  161. Host := ini.ReadString(label1.Caption,'smtp', 'NouParametr'); // установим хост SMTP сервера
  162. Port:= 25;
  163. Username:= ini.ReadString(label1.Caption,'login', 'NouParametr');
  164. Password:= ini.ReadString(label1.Caption,'parol', 'NouParametr');
  165. end;
  166. with IdMessage1 do
  167. begin
  168. attach :=TIdAttachmentFile.Create(IDMessage1.MessageParts, '123.jpg');
  169. Subject:=Edit2.Text; //чиаем тему письма из Edit
  170. Recipients.EMailAddresses:=ComboBox1.Text;
  171. From.Text:= ini.ReadString(label1.Caption,'email', 'NouParametr');
  172. Body.Assign(Memo.Lines);
  173. ContentType:='text/html; charset=windows-1251';
  174. ContentTransferEncoding:='8bit';
  175. //Body.LoadFromFile(ExtractFilePath(Application.ExeName)+'123.jpg');
  176.  
  177. end;
  178. IdSMTP1.Connect;
  179. try
  180. IdSMTP1.Send(IdMessage1);
  181.  
  182. finally
  183. IdSMTP1.Disconnect();
  184. ShowMessage('Сообщение отправлено!');
  185. end;
  186. end;
  187. procedure TForm2.SpeedButton4Click(Sender: TObject);
  188. begin
  189. Rvproject1.Open;
  190. Rvproject1.SelectReport('Report1', false);
  191. Rvproject1.SetParam('new', ComboBox1.Text);
  192. Rvproject1.SetParam('mem', memo.Text);
  193. Rvproject1.Execute;
  194. Rvproject1.Close;
  195. end;
  196. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement