Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Вниз

HTML и Буфер обмена   Найти похожие ветки 

 
SerJaNT ©   (2006-08-19 14:38) [0]

В буфере находится скопированная (через CTRL+C) в IE Web страничка. Как отобразить эту страничку (из буфера) в WebBrowser?


 
Пусик ©   (2006-08-19 14:58) [1]

Если страница не очень большая, можно получить буфер в строку,
потом

var
URL: OLEVariant;
begin
URL := "about:"+MyStrFromBuf;
WebBrowser1.Navigate2(URL);


 
SerJaNT ©   (2006-08-19 15:10) [2]

Делаю так:
procedure TMainForm.PasteHTMLClick(Sender: TObject);
var
 URL: OLEVariant;
begin
URL := "about:"+clipboard.AsText;
WebBrowser1.Navigate2(URL);
end;


Но ничего не грузится. Вернее грузится, только как plain text. А мвсе из-за clipboard.AsText! Как вставить в WebBrowser html?


 
TUser ©   (2006-08-19 15:11) [3]


> Но ничего не грузится. Вернее грузится, только как plain
> text. А мвсе из-за clipboard.AsText! Как вставить в WebBrowser
> html?

Ты же правильно сказал - в буфере нет html"а. Нечего вставлять.


 
Пусик ©   (2006-08-19 15:13) [4]


> Вернее грузится, только как plain text


Значит в буфере у тебя текст без разметки.
Естественно, так он и будет показан.


 
SerJaNT ©   (2006-08-19 15:18) [5]

> Значит в буфере у тебя текст без разметки.
> Естественно, так он и будет показан.


Нет, я в ослике веб страничку скопировал. В буфере значит уже не plain text будет т.к. например в ворд вставляется как web-страничка. Это все из-за clipboard.AsText - возвращает html как обычный текст. Ладно, тогда как получить содержимое буфера в виде html? И нужно без всякой доп.инфы  в начале html-кода типа:

StartHTML:000000213
EndHTML:000001726
StartFragment:000000703
EndFragment:000001647
StartSelection:000000703
EndSelection:000001647
SourceURL:res://C:\WINDOWS\System32\shdoclc.dll/navcancl.htm


 
Пусик ©   (2006-08-19 18:02) [6]

Например, так:

function TForm3.SetWBFromClibboard: Boolean;
var
Document: IHTMLDocument2;
V: OleVariant;
Data: THandle;
Len: Integer;
StartHtml,EndHtml: Integer;
w: WideString;
s,s1: String;
begin
Result := True;
try
 if WB.Document = nil then WB.Navigate("about:blank");

 while WB.Document = nil do Application.ProcessMessages;

 Clipboard.Open;
 Data := GetClipboardData(49337);
 try
  if Data <> 0
   then w := PWideChar(GlobalLock(Data))
   else w := "";
 finally
  if Data <> 0 then
    GlobalUnlock(Data);
    Clipboard.Close;
 end;
 s := Utf8ToAnsi(PChar(w));
 Len := Pos("<",s);
 s1 := Copy(s,1,Len);
 Len := Pos("StartHTML:",s1);
 Delete(s1,1,Len+9);
 Len := Pos(#13#10,s1);
 StartHtml := StrToInt(Copy(s1,1,Len-1));
 Delete(s1,1,Len+1);
 Len := Pos(":",s1);
 Delete(s1,1,Len);
 EndHtml := StrToInt(Copy(s1,1,Pos(#13#10,s1)-1) );

 s := Copy(s,StartHtml+1,EndHtml-StartHtml);
 try
  V := VarArrayCreate([0, 0], varVariant);
  Document:= WB.Document as IHtmlDocument2;
  V[0] := s;
  Document.Write(PSafeArray(TVarData(v).VArray));
 finally
  Document.Close;
 end;
except
 Result := False;
end;

end;


 
SerJaNT ©   (2006-08-22 13:01) [7]

> [6] Пусик ©   (19.08.06 18:02)


Спасибо за код, но он не работает т.е. появляется ошибка EConvertError. Уже что только с ним не делал, ничего не пойму. Переменная w просто пустая! А StrToInt пытается ее конвертировать в число,тут то и ошибка... Я посмотрел код скопированной странички, так там до startHTML еще какой-то текст есть.


 
SerJaNT ©   (2006-08-23 01:43) [8]

up!



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.044 c
15-1155740135
X9
2006-08-16 18:55
2006.09.10
Разыскивается компонент


15-1155800785
Сергей М.
2006-08-17 11:46
2006.09.10
Непонятка при работе в связке Access2003 + MS VisualFoxPro ODBC


2-1155721990
444
2006-08-16 13:53
2006.09.10
TImage +загрузка из массива


2-1156215517
Старт7
2006-08-22 06:58
2006.09.10
Как из строки "< font color = white >" вытянуть цвет?


3-1152195197
solenko
2006-07-06 18:13
2006.09.10
Условие на вычисляемые поля при использовании GROUP BY





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский