Вообщем столкнулся с проблемой: зная IHTMLElement нужно полчуить его видимый RECT. Как быть?
Щас делаю так:
1) получаю для элемента offsetLeft, offsetTop, offsetHeight, offsetWidth
2) потом сканирую
el:=element.offsetParent;
while (el<>nil) do begin
xLeft:=xLeft+el.offsetLeft;
xTop:=xTop+el.offsetTop;
el:=el.offsetParent;
end;
Нахожу смещение его ректа относительно начала документа.
и вот тут самое интересное:
1) Почему то всегда получаеться что у Rect'a Left and Top меньше на 1-2 пикселя. Что я не учел?
2) как быть если элемент виден не весь? как получить видимую часть?
3) как быть если страницу проскролили? Ведь смещение идет от начало документа но так как документ проскролен то видимое начало не есть начало документа
Очень нужна помощь. Зарание благодарен.
Re: RECT (Видимый) и IHTMLElement
От:
Аноним
Дата:
15.02.06 09:11
Оценка:
Здравствуйте, Nif, Вы писали:
посмотрите в сторону
IHTMLTextRangeMetrics
IHTMLTextRangeMetrics2
WBR,
Pavel
Nif>Вообщем столкнулся с проблемой: зная IHTMLElement нужно полчуить его видимый RECT. Как быть?
Nif>Щас делаю так: Nif>1) получаю для элемента offsetLeft, offsetTop, offsetHeight, offsetWidth Nif>2) потом сканирую Nif> el:=element.offsetParent; Nif> while (el<>nil) do begin Nif> xLeft:=xLeft+el.offsetLeft; Nif> xTop:=xTop+el.offsetTop; Nif> el:=el.offsetParent; Nif> end; Nif> Нахожу смещение его ректа относительно начала документа.
Nif>и вот тут самое интересное:
Nif>1) Почему то всегда получаеться что у Rect'a Left and Top меньше на 1-2 пикселя. Что я не учел? Nif>2) как быть если элемент виден не весь? как получить видимую часть? Nif>3) как быть если страницу проскролили? Ведь смещение идет от начало документа но так как документ проскролен то видимое начало не есть начало документа
Nif>Очень нужна помощь. Зарание благодарен.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Nif, Вы писали:
А>посмотрите в сторону
А>IHTMLTextRangeMetrics А>IHTMLTextRangeMetrics2
А>WBR, А>Pavel
Кто нибудеь может что-то еще подсказать/помочь? Бо чувтсвую информации мало для решения проблемы.