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

Вниз

WebBrowser   Найти похожие ветки 

 
Lid ©   (2007-08-10 20:47) [0]

Всем доброго времени суток :)
Появился у меня такой вопросик, значит нужно поставить на форму TWebBrowser и TMemo, ну и кнопочку естественно :) и значит при открытии страницы какой-нибудь (это я знаю как сделать) должно автоматически происходить следующие действия:

1) Выделение текста в WebBrowser (Ctrl+A в IE)
2) Копирование этого текста (Ctrl+C в IE)
3) Вставление этого текста в Memo (Ctrl+V в IE)

Так вот собственно как сделать эти 3 пункта я непонимаю, пробовал сделать что-то типа  keybd_event("A", 0,0,0); и т.д  и мало того что не получается, так еще и вручную не получается скопировать тест, хотя страницу выделить автоматически получилось :)

Заранее спасибо :)


 
WASM   (2007-08-12 09:00) [1]

function WB_GetSelectedText(WB: TWebBrowser): string;
var
 Document: Variant;
 TR: IHTMLTxtRange;
begin
 Document:= WB.Document;
 if WB.Document <> nil then
   Result := Document.Selection.createRange.Text
 else
   Result := "";
end;

procedure WriteToClipboard(s: WideString);
var
   Handle: THandle;
   HandlePtr: Pointer;
   Size: Cardinal;
begin
 if OpenClipboard(Self.Handle) then
 begin
   EmptyClipboard;
   Size:=  SizeOf(s[1]) * (Length(s) + 1);
   Handle:= GlobalAlloc(GMEM_MOVEABLE + GMEM_DDESHARE, Size);
   if Handle = 0 then
     Exit;
   HandlePtr:= GlobalLock(Handle);
   Move((PWideChar(s))^, HandlePtr^, Size);
   GlobalUnLock(Handle);
   SetClipboardData(CF_UNICODETEXT, Handle);
   CloseClipboard();
 end;
end;

procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject;
 const pDisp: IDispatch; var URL: OleVariant);
begin
try
   WebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_PROMPTUSER);
 WriteToClipboard(WB_GetSelectedText(WebBrowser1));
 Memo1.PasteFromClipboard;
 except
 end;
end



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

Текущий архив: 2008.05.18;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.057 c
2-1208369217
Blasphemie
2008-04-16 22:06
2008.05.18
Автоматическое изменение полей записи - как?


3-1196084789
AntonUSAnoV
2007-11-26 16:46
2008.05.18
пропадает полоса прокрутки в dbgrid


2-1208423314
Ega23
2008-04-17 13:08
2008.05.18
STDIN и STDOUT


2-1208521330
Динис_ИС
2008-04-18 16:22
2008.05.18
Как зашарить папку ?


2-1208843779
Mehiko
2008-04-22 09:56
2008.05.18
номер выбранного пункта Treeview





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