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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2014, 12:46   #1
dim5
Пользователь
 
Аватар для dim5
 
Регистрация: 28.01.2013
Сообщений: 24
По умолчанию Перевести код с дельфи

Здравствуйте. Помогите перевести код с делфи на с++
Код:
procedure TForm1.Button1Click(Sender: TObject);

   // Эта функция была найдена на просторах Интернета
   // Один из авторов - Rik Barker
   function CrossDomainFrame(Doc : IHTMLDocument2;
                             nFrame : Integer) : IWebBrowser2;
   var
      theContainer : IOLEContainer;
      Enumerator : IEnumUnknown;
      nFetched : PLongInt;
      unknownFrame : IUnknown;
   begin
      Result := nil;
      nFetched := nil;
      theContainer := Doc as IOleContainer;
      theContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enumerator);
      Enumerator.skip(nFrame);
      Enumerator.next(1, unknownFrame, nFetched);
      unknownframe.QueryInterface(IID_IWebBrowser2, Result);
   end;

var
   Doc : IHTMLDocument2;
   Frames : IHTMLFramesCollection2;
   i, j : Integer;
   iCurr, iLink : OleVariant;
   Disp : IDispatch;
   Frame : IHTMLWindow2;
   Lnk : IHTMLElementCollection;
   CurrLnk : IHTMLElement;
begin
   Doc := WebBrowser1.Document as IHTMLDocument2;
   Frames := Doc.frames;
   for i := 0 to Frames.length - 1 do
   begin
      iCurr := i;
      Disp := Frames.item(iCurr);
      OleCheck(Disp.QueryInterface(IID_IHTMLWindow2, Frame));

      // Для надежности работаем со всеми фреймами, как с междоменными:
      Doc := CrossDomainFrame(WebBrowser1.Document as iHTMLDocument2,
                              iCurr).document as iHTMLDocument2;
      // Теперь возьмем линки, присутствующие на текущем фрейме
      Lnk := Doc.links;
      for j := 0 to Lnk.length - 1 do
      begin
         iLink := j;
         CurrLnk := Lnk.item(varEmpty, iLink) as IHTMLElement;
         // и на 5-ом фрейме (на твоей странице это блок Гуглорекламы)
         // жмем первую ссылку:
         if (i = 4) and (j = 0) then
         begin
            CurrLnk.click;
            Exit; // Всё, выходим из перебора
         end;
      end;
   end;

end;
dim5 вне форума Ответить с цитированием
Старый 21.05.2014, 11:46   #2
dim5
Пользователь
 
Аватар для dim5
 
Регистрация: 28.01.2013
Сообщений: 24
Плохо

ни кто дельфи не знает чтоли ?
dim5 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите перевести код с VB в код Lazarus Ляйсан9517 Lazarus, Free Pascal, CodeTyphon 2 22.04.2014 19:31
Надо перевести код с Паскаля в код Lazarus Ляйсан9517 Помощь студентам 7 06.04.2014 22:44
Перевести код из C++ в C# Dj_SheLL Помощь студентам 0 22.03.2011 23:18
Перевести на Дельфи косинусное преобразование MrJenika Помощь студентам 0 26.02.2011 11:23