Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.043 c
15-1155466218
Andy BitOff
2006-08-13 14:50
2006.09.10
Windows в 85 году


2-1155815298
fast2
2006-08-17 15:48
2006.09.10
Что неправильно в условии:


15-1155749638
VictorT
2006-08-16 21:33
2006.09.10
Притащился от формы регистрации на форуме


2-1155903791
XTD
2006-08-18 16:23
2006.09.10
Получить почту при помощи IdPOP31 (indy)


2-1156236491
misha_gr
2006-08-22 12:48
2006.09.10
Директивы компилятора





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский