Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.149.238.159] |
|
Сообщ.
#1
,
|
|
|
Есть такие вопросы 1)Как узнать Handle у IE(т.к он менятеся после ввода Веб-Страницы).
2) Как узнать Handle у элемта страницы (например у поля ввода Edit), и как туда записать текст, из Edit'a Formi Delphi. Зарание спасибо. |
Сообщ.
#2
,
|
|
|
Нет, т.к. эти элементы - не окна, просто картинки.
Кстати, в Опере можно решить эту проблему. Что же касается ослика, то здесь единственный способ через интерфейс iHtmlElement |
Сообщ.
#3
,
|
|
|
Хорошо, а как эту проблему можно решить в Opere? И как всёже найти Handle у IE?
|
Сообщ.
#4
,
|
|
|
В Опере GetFocus например.
В IE нельзя, я же сказал. У него это не окна, а картинки! А поэтому и дискриптора у них нет. |
Сообщ.
#5
,
|
|
|
Вопрос конкретно про Handle окна IE.
|
Сообщ.
#6
,
|
|
|
ты русский язык понимаешь? Добавлено в : Или ты про головное окно? Если да, то FindWindow() по классу 'IEFrame' |
Сообщ.
#7
,
|
|
|
Да, с русским у меня туговато, т.к живу я в Латвии(Рига), у моём учебном заведении в неделю 1 урок русского и 6 латышского(Хотя в паспорте написано "Krievs" т.е "Русский").Вопрос должен иметь положительный ответ.ИмХо."Как определить дискриптор самого окна IE?" function FindWindow(ClassName, WindowName: PChar): HWnd;Параметры:
ClassName: Имя класса. WindowName: Текстовый заголовок. Загвостка: Текстовый заголовок окна ИЕ постоянно меняется. Как быть? (Лат."Ko darit?") |
Сообщ.
#8
,
|
|
|
Не беспокойся, пиши:
WinHandle := FindWIndow( 'IEFrame', nil ); И всё будет в порядке. При открытии страницы handle не поменялся(я проверил). |
Сообщ.
#9
,
|
|
|
Цитата ZAS @ 13.01.04, 15:14 Есть такие вопросы 1)Как узнать Handle у IE(т.к он менятеся после ввода Веб-Страницы). 2) Как узнать Handle у элемта страницы (например у поля ввода Edit), и как туда записать текст, из Edit'a Formi Delphi. Зарание спасибо. Цитата ZAS @ 13.01.04, 15:14 2) Как узнать Handle у элемта страницы (например у поля ввода Edit), и как туда записать текст, из Edit'a Formi Delphi. Зарание спасибо. Song прав в том смысле, что никаких хэндлов эти элементы не имеют. Это совсем не TEdit. В HTML они задаются как <form><input type="text" id="Some_Id"></form> В разделе uses добавь ComObj. Это для работы с OLE(Object Linking and Embedding of objects). Нужна будет функция CreateOLeObject. Опиши переменную: var var IE:OleVariant; Кинь на форму 2 кнопки и Edit с текстом. По Button1Click загрузи страницу с такими полями ввода: procedure TForm1.Button1Click(Sender: TObject); begin IE := CreateOLEObject('InternetExplorer.Application'); IE.Visible := True; IE.Navigate('http://www.TheWebPageWithAForm.com');//в кавычках пропиши адрес страницы // или создай свою(см выше как задаются поля) end; По Button2Click присваивай им значения: procedure TForm1.Button2Click(Sender: TObject); var i : integer; Doc, Tags, Tag : variant; begin Doc:=IE.Document; Tags:=Doc.Body.All.Tags('input'); for i:=0 to Tags.Length-1 do begin Tag:=Tags.Item(i); if CompareText(Tag.Type,'text')=0 then Tag.Value:=Edit1.Text; //проверили или тип input текстовый //если да, то записываем туда значение твоего Edit end; end; Если что-то всё-таки сделать не получилось, то в attach'е возьми готовый работающий простейший исходник для Delphi 6. Если придётся, то перебацаешь проект для более ранних версий Delphi. Код не меняется. Уточняй, что надо. Прикреплённый файлDelphi_IE.zip (7.07 Кбайт, скачиваний: 81) |