All pastes #456900 Raw Edit

Unnamed

public text v1 · immutable
#456900 ·published 2007-04-25 01:43 UTC
rendered paste body
unit Visualizar;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Controls, Forms,
  Menus,  StrUtils, IniFiles, IdCookieManager, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, pngimage, SHDocVw,
  AppEvnts, OleCtrls,MSHTML, ActiveX, ScktComp, StdCtrls;

type
  TVisualizador = class(TForm)
    PopupMenu2: TPopupMenu;
    Copy1: TMenuItem;
    SelectAll1: TMenuItem;
    MainMenu1: TMainMenu;
    Sair1: TMenuItem;
    IdHTTP1: TIdHTTP;
    IdCookieManager1: TIdCookieManager;
    WebBrowser1: TWebBrowser;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure WebBrowser1StatusTextChange(Sender: TObject; const Text: WideString);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Copy1Click(Sender: TObject);
    procedure SelectAll1Click(Sender: TObject);
    procedure PopupMenu2Popup(Sender: TObject);
    procedure WebBrowser1BeforeNavigate2(ASender: TObject;
      const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
      Headers: OleVariant; var Cancel: WordBool);
  private
  var
    Ini:TIniFile;
    procedure InitHtml(AWebBrower: TWebBrowser);
    procedure ShowHtml(content: string);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Visualizador: TVisualizador;
  HTML_Head : TStringList;



implementation

uses Codhtml;


{$R *.dfm}

function Buscar(html,Inicio,fim: string): string;
var i,f: integer;
S: String;
begin
  S := LowerCase(html);
  Inicio:=LowerCase(Inicio);
  Fim:=LowerCase(Fim);
  i:=Pos(Inicio,S)+Length(Inicio);
  f:=PosEx(fim,S, i);
  result:=trim(Copy(html,i,f-i));
end;
procedure TVisualizador.InitHtml(AWebBrower: TWebBrowser);
var
  URL: OleVariant;
begin
  URL := 'about:blank';
  AWebBrower.Navigate2(URL);
end;

procedure TVisualizador.ShowHtml(content: string);
var
  v: Variant;
  HTMLDocument: IHTMLDocument2;
begin
  v := VarArrayCreate([0, 0], varVariant);
  v[0] := content;
  HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
  HTMLDocument.write(PSafeArray(TVarData(v).VArray));
  HTMLDocument.close;
  HTMLDocument := nil;
end;

procedure TVisualizador.WebBrowser1BeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
const
  hUrl = 'about:blank';
begin
  if string(URL) = hUrl + 'Close' then
  begin
    Close;
  end;
  if string(URL) = hUrl + 'Home' then
  begin
    ShowHtml(HTML_Head.Text);
    Cancel := True; //don't change page
    Exit;
  end;
  if string(URL) = hUrl + 'Help' then
  begin
    ShowHtml(HTML_Head.Text);
    Cancel := True;
    Exit;
  end;
end;

procedure TVisualizador.WebBrowser1StatusTextChange(Sender: TObject;
  const Text: WideString);
begin
  Caption := Text;
end;

procedure TVisualizador.Button2Click(Sender: TObject);
begin
  Close;
end;

procedure TVisualizador.FormClose(Sender: TObject; var Action: TCloseAction);
begin
idhttp1.Disconnect;
end;

procedure TVisualizador.FormCreate(Sender: TObject);
var
Params:TstringStream;
html:string;
begin
    Ini := TIniFile.Create(extractfilepath(paramstr(0)) + 'config.ini');
    Params := TStringStream.create('');
    Params.WriteString('st=0');
    Params.WriteString('&act=Post');
    Params.WriteString('&f=174');
    Params.WriteString('&auth_key='+ini.ReadString('Informacoes', 'Info4', ''));
    Params.WriteString('&removeattachid=0');
    Params.WriteString('&MAX_FILE_SIZE=5120000');
    Params.WriteString('&CODE=01');
    Params.WriteString('&TopicTitle='+Geradorhtml.titulopost.Lines.text);
    Params.WriteString('&TopicDesc='+Geradorhtml.descpost.Lines.text);
    Params.WriteString('&poll_question=');
    Params.WriteString('&ed-0_wysiwyg_used=0');
    Params.WriteString('&editor_ids[]=ed-0');
    Params.WriteString('&Post='+Geradorhtml.codigohtml.Lines.text);
    Params.WriteString('&post_htmlstatus=0');
    Params.WriteString('&enableemo=yes');
    Params.WriteString('&enablesig=yes');
    Params.WriteString('&iconid=0');
    Params.WriteString('&preview=Visualizar post');
    with idhttp1 do
      begin
       Request.ContentType := 'application/x-www-form-urlencoded';
       Request.Referer := 'http://www.brazukas.org/index.php?act=post';
       CookieManager.Create(nil);
       CookieManager.AddCookie('rte-sidepanel=open', 'www.brazukas.org');
       CookieManager.AddCookie('ipb_stronghold='+ini.ReadString('Informacoes', 'Info1', ''), 'www.brazukas.org');
       CookieManager.AddCookie('pass_hash='+ini.ReadString('Informacoes', 'Info2', ''), 'www.brazukas.org');
       CookieManager.AddCookie('member_id='+ini.ReadString('Informacoes', 'Info3', ''), 'www.brazukas.org');
      try
       Response.KeepAlive := False;
       HTML := Post('http://www.brazukas.org/index.php?act=post', Params);
       html := Buscar(html, '<div class="row1">', '<br /><form');
      except
       on E: Exception do
       Messagebox(0,'Error', PAnsiChar('Error encountered during POST: ' + E.Message), 32);
      end;
    Html_Head := TStringLIst.Create;
    with Html_Head do
      begin
       Add('<html>' );
       Add('<head>' );
       Add('<title>Gerador de Post - Brazukas.org</title>' );
       Add('</head>' );
       Add('<body bgcolor="#EEF2F7">' );
       Add(html);
      end;
      ShowHtml(HTML_Head.text);
   end;
 Idhttp1.CookieManager.Free;
 params.Free;
 Ini.free;
end;

procedure TVisualizador.FormShow(Sender: TObject);
var
Params:TstringStream;
html:string;
begin
    Ini := TIniFile.Create(extractfilepath(paramstr(0)) + 'config.ini');
    Params := TStringStream.create('');
    Html_Head := TStringLIst.Create;
    Params.WriteString('st=0');
    Params.WriteString('&act=Post');
    Params.WriteString('&f=174');
    Params.WriteString('&auth_key='+ini.ReadString('Informacoes', 'Info4', ''));
    Params.WriteString('&removeattachid=0');
    Params.WriteString('&MAX_FILE_SIZE=5120000');
    Params.WriteString('&CODE=01');
    Params.WriteString('&TopicTitle='+Geradorhtml.titulopost.Lines.text);
    Params.WriteString('&TopicDesc='+Geradorhtml.descpost.Lines.text);
    Params.WriteString('&poll_question=');
    Params.WriteString('&ed-0_wysiwyg_used=0');
    Params.WriteString('&editor_ids[]=ed-0');
    Params.WriteString('&Post='+Geradorhtml.codigohtml.Lines.text);
    Params.WriteString('&post_htmlstatus=0');
    Params.WriteString('&enableemo=yes');
    Params.WriteString('&enablesig=yes');
    Params.WriteString('&iconid=0');
    Params.WriteString('&preview=Visualizar post');
    with idhttp1 do
      begin
       Request.ContentType := 'application/x-www-form-urlencoded';
       Request.Referer := 'http://www.brazukas.org/index.php?act=post';
       CookieManager.Create(nil);
       CookieManager.AddCookie('rte-sidepanel=open', 'www.brazukas.org');
       CookieManager.AddCookie('ipb_stronghold='+ini.ReadString('Informacoes', 'Info1', ''), 'www.brazukas.org');
       CookieManager.AddCookie('pass_hash='+ini.ReadString('Informacoes', 'Info2', ''), 'www.brazukas.org');
       CookieManager.AddCookie('member_id='+ini.ReadString('Informacoes', 'Info3', ''), 'www.brazukas.org');
      try
       Response.KeepAlive := False;
       HTML := Post('http://www.brazukas.org/index.php?act=post', Params);
       html := Buscar(html, '<div class="row1">', '<br /><form');
      except
       on E: Exception do
       Messagebox(0,'Error', PAnsiChar('Error encountered during POST: ' + E.Message), 32);
      end;
      Idhttp1.CookieManager.Free;
      params.Free;
      Ini.free;
      end;
    with Html_Head do
      begin
       Add('<html>' );
       Add('<head>' );
       Add('<title>Gerador de Post - Brazukas.org</title>' );
       Add('</head>' );
       Add('<body bgcolor="#EEF2F7">' );
       Add(html);
       Add('<body>' );
       Add('</body>' );
       Add('</html>' );
      end;
      ShowHtml(HTML_Head.Text);
end;

procedure TVisualizador.Copy1Click(Sender: TObject);
begin
  //Copy
  try
    WebBrowser1.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_PROMPTUSER);
  except
  end;
end;

procedure TVisualizador.SelectAll1Click(Sender: TObject);
begin
  //Select All
  try
    WebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_PROMPTUSER);
  except
  end;
end;

procedure TVisualizador.PopupMenu2Popup(Sender: TObject);
begin
  if WebBrowser1.OleObject.Document.queryCommandEnabled('Copy') then
    Copy1.Enabled := True
  else
    Copy1.Enabled := False;
end;

initialization
  OleInitialize(nil);

finalization
  OleUninitialize;

end.