Форум: "Начинающим";
Текущий архив: 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.46 MB
Время: 0.048 c