MainForm.pas
上传用户:yjb1804
上传日期:2021-01-30
资源大小:3105k
文件大小:2k
源码类别:

Email服务器

开发平台:

Delphi

  1. unit MainForm;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   StdCtrls, ExtCtrls, HtmlParser;
  6. type
  7.   THTMLForm = class(TForm)
  8.     TopPanel: TPanel;
  9.     FileNameEdit: TEdit;
  10.     BrowseButton: TButton;
  11.     OpenButton: TButton;
  12.     OpenDialog: TOpenDialog;
  13.     Memo: TMemo;
  14.     procedure BrowseButtonClick(Sender: TObject);
  15.     procedure OpenButtonClick(Sender: TObject);
  16.     procedure TopPanelResize(Sender: TObject);
  17.   private
  18.     HtmlParser: THtmlParser;
  19.   end;
  20. var
  21.   HTMLForm: THTMLForm;
  22. implementation
  23. {$R *.DFM}
  24. uses
  25.   DomCore, Formatter;
  26. procedure THTMLForm.BrowseButtonClick(Sender: TObject);
  27. begin
  28.   if OpenDialog.Execute then
  29.     FileNameEdit.Text := OpenDialog.FileName
  30. end;
  31. procedure THTMLForm.OpenButtonClick(Sender: TObject);
  32. var
  33.   S: String;
  34.   F: TStream;
  35.   HtmlDoc: TDocument;
  36.   Formatter: TBaseFormatter;
  37. begin
  38.   F := TFileStream.Create(FileNameEdit.Text, fmOpenRead);
  39.   try
  40.     SetLength(S, F.Size);
  41.     F.ReadBuffer(S[1], F.Size)
  42.   finally
  43.     F.Free
  44.   end;
  45.   HtmlParser := THtmlParser.Create;
  46.   try
  47.     HtmlDoc := HtmlParser.parseString(S)
  48.   finally
  49.     HtmlParser.Free
  50.   end;
  51.   Formatter := TTextFormatter.Create;
  52.   try
  53.     Memo.Lines.Text := Formatter.getText(HtmlDoc)
  54.   finally
  55.     Formatter.Free
  56.   end;
  57.   HtmlDoc.Free;
  58.   Memo.SelStart := 0;
  59.   Memo.SelLength := 0;
  60. end;
  61. procedure THTMLForm.TopPanelResize(Sender: TObject);
  62. begin
  63.   OpenButton.Left := TopPanel.Width - 70;
  64.   BrowseButton.Left := OpenButton.Left - 42;
  65.   FileNameEdit.Width := BrowseButton.Left - FileNameEdit.Left
  66. end;
  67. end.