Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Captura de HTML desde IE (https://www.clubdelphi.com/foros/showthread.php?t=14921)

taita 04-10-2004 23:53:43

Captura de HTML desde IE
 
Hola a tod@s:

Pues de eso mismo se trata esta pregunta.
Supongamos que estamos viendo una página en el navegador (no necesariamente tiene que ser el Internet Explorer).
Si seleccionamos parte del texto que estamos visualizando y lo copiamos en la memoria, cuando lo pegamos en algunos programas (por ejemplo Dreamweaver) nos aparece la opción de pegarlo manteniendo el formato (etiquetas html).
Cuando intento pegar en mi Tmemo el contenido que he seleccionado sólo se pega el texto y no las etiquetas.
¿Cómo se puede hacer para pegar el contenido del portapapeles incluyendo las etiquetas html?

Pufff
Gracias!

taita 06-10-2004 02:42:58

Debo usar algun componente especial para hacer esto? ya he probado con algunas cosas, pero siempre con el mismo resultado.
A ver si alguien puede orientarme un poco...

keyboy 06-10-2004 19:04:17

El texto seleccionado en una página web se registra en el portapapeles con el formato 'HTML Format'. Para obtener el texto puedes usar esta función:

Código:

  function GetClipboardHTML: String;
  var
    cfHtml: Cardinal;
    cbHandle: THandle;
    TextPtr: PChar;
 
  begin
    cfHtml := RegisterClipboardFormat('HTML Format');
    if Clipboard.HasFormat(cfHtml) then
    begin
          Clipboard.Open;
          try
            cbHandle := Clipboard.GetAsHandle(cfHtml);
            TextPtr := GlobalLock(cbHandle);
            Result := StrPas(TextPtr);
            GlobalUnlock(cbHandle);
          finally
            Clipboard.Close;
          end;
    end;
  end;

Esta es la parte fácil. La parte difícil es entender exactamente el formato que queda en el portapapeles, algo como:

Código:

  Version:0.9
  StartHTML:00000097
  EndHTML:00000450
  StartFragment:00000111
  EndFragment:00000414
  <html><body>
  <!--StartFragment -->
  <td background="/img/rl.gif" valign="bottom" width="28"></td>
          <td valign="top">
            <table border="0" cellpadding="0" cellspacing="0" width="100%">
                  <tbody><tr>
                    <td valign="top">
 
  <h1>FIBPlus - Fast InterBase Plus</h1></td></tr></tbody></table></td>
  <!--EndFragment-->
  </body>
  </html>

de manera que tienes que quitar el encabezado y decidir con qué parte te quedas, con lo que está entre las posiciones StartHTML y EndHTML (el contexto) o lo que está entre las posiciones StartFragment o EndFragment (el fragmento). La descripción completa del formato la puedes encontrar aquí.

Bye

taita 06-10-2004 23:21:45

Muchas Gracias Keyboy me ha venido de perlas.
Gracias.


La franja horaria es GMT +2. Ahora son las 22:36:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi