Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2010, 18:25   #1
waterya
Пользователь
 
Регистрация: 24.10.2009
Сообщений: 23
По умолчанию Работа программы со всеми данными.

Есть программа. В ней есть компонент edit. как сделать так, что бы в этот edit копировались слова из word или интернет браузера, при нажатий какой нибудь горячей клавиши
waterya вне форума Ответить с цитированием
Старый 16.06.2010, 18:57   #2
Sensizu
Otsukitakitte
Форумчанин
 
Аватар для Sensizu
 
Регистрация: 01.10.2009
Сообщений: 126
По умолчанию

Смотри. Код нашей клавиши (это Button):
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Elem: IHTMLElement;
begin
  Elem := GetElementById(WebBrowser1.Document, 'someID') as IHTMLElement;
  if Assigned(Elem) then
      Edit1.Text:=Elem.innerHTML;
end;
Теперь сама функция:
Код:
uses
  MSHTML, SysUtils, Variants;
...
function TForm1.FromWBToEdt(const wb:TWebBrowser, edit:TEdit);
var
  Document: IHTMLDocument2;  
  Body: IHTMLElement2;         
  Tags: IHTMLElementCollection; 
  Tag: IHTMLElement;            
  I: Integer;                  
begin
Result := nil;
  // Проверяем документ
  if not Supports(Doc, IHTMLDocument2, Document) then
    raise Exception.Create('Invalid HTML document');
  // Проверяем тело нашего документа
  if not Supports(Document.body, IHTMLElement2, Body) then
    raise Exception.Create('Can''t find <body> element');
  // Получаем нужное значение в переменную Tags
  Tags := Body.getElementsByTagName('*');
  // Проверяем весь код документа
  for I := 0 to Pred(Tags.length) do
  begin
    Tag := Tags.item(I, EmptyParam) as IHTMLElement;
    // Проверяем переменную Tags и возвращаем результат, если совпадёт
    if AnsiSameText(Tag.id, Id) then
    begin
      Result := Tag;
      Break;
    end;
  end;
end;
Таким образом, мы получили тэг по его ID. Теперь мы можем делать с ним всё, что заходим: будь то Elem.innerHTML, Elem.id, Elem.TagName, Elem.Style и тра-та-та (там кстати список параметров будет - посмотришь).
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); });

Последний раз редактировалось Sensizu; 16.06.2010 в 19:01.
Sensizu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строковыми данными prittygirl Паскаль, Turbo Pascal, PascalABC.NET 2 11.06.2010 14:50
Работа со строковыми данными Anton5 Фриланс 11 16.04.2010 14:48
Работа со строковыми данными. Anton5 Помощь студентам 3 13.03.2010 14:53
Работа с номенклатурными данными Disday Общие вопросы Delphi 13 08.06.2009 23:21
Работа со строковыми данными. medic357 Общие вопросы C/C++ 3 23.03.2009 19:41