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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2010, 23:09   #1
J-Max
Пользователь
 
Регистрация: 04.02.2010
Сообщений: 52
По умолчанию Непонятное поведение типа

Анамалия какая-то:
Код:
if ((img as IHTMLElement).parentElement.tagName = 'A') then
begin
Form1.Caption:=((img as IHTMLElement).parentElement as IHTMLAnchorElement).href; //Тут еще все нормально и ссылка хорошо показывается на заголовке формы
if Form1.Caption=ovTable.Document.Links.Item(k) then //но если присваиваю к другой переменной даже WideString или сравниваю с другой строковой переменной, 
то выскакивает ошибка interface not support.
ShowMessage(Form1.Caption);
end;
Также бывает если даже напрямую сравнить. Что делать? мне бы только строку эту ((img as IHTMLElement).parentElement as IHTMLAnchorElement).href получить...

Последний раз редактировалось mihali4; 10.02.2010 в 03:22.
J-Max вне форума Ответить с цитированием
Старый 10.02.2010, 03:23   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Чего проще?
Поставьте бряку на эту строку и посмотрите "ейные унутренности" подробненько
mihali4 вне форума Ответить с цитированием
Старый 10.02.2010, 08:05   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Дык это... Проверки то нужно ставить:
Код:
if ((img as IHTMLElement).parentElement.tagName = 'A') then
begin
Form1.Caption:=((img as IHTMLElement).parentElement as IHTMLAnchorElement).href; 
if not VarIsClear(ovTable) then
 if Form1.Caption=ovTable.Document.Links.Item(k) then 
ShowMessage(Form1.Caption);
end;
Ну и в принципе проверками не гнушайся, если с OLE работаешь, ато мало ли - вдруг некий интерфейс равен nil...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2010, 13:42   #4
J-Max
Пользователь
 
Регистрация: 04.02.2010
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Дык это... Проверки то нужно ставить:
Код:
if ((img as IHTMLElement).parentElement.tagName = 'A') then
begin
Form1.Caption:=((img as IHTMLElement).parentElement as IHTMLAnchorElement).href; 
if not VarIsClear(ovTable) then
 if Form1.Caption=ovTable.Document.Links.Item(k) then 
ShowMessage(Form1.Caption);
end;
Ну и в принципе проверками не гнушайся, если с OLE работаешь, ато мало ли - вдруг некий интерфейс равен nil...
В той переменной значение точно есть(В программе выводится до проверки это значение). Даже просто записать
var
s:String;
s:=((img as IHTMLElement).parentElement as IHTMLAnchorElement).href;
то все-равно ошибка.
Иногда еще такая выскакивает
Invalid variant operator

Последний раз редактировалось J-Max; 10.02.2010 в 13:46.
J-Max вне форума Ответить с цитированием
Старый 10.02.2010, 14:20   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В той переменной значение точно есть
В той есть, а в ее свойствах нет.
Проверяй каждое свойство этого интерфейса, если его используешь - это не будет лишне
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2010, 14:53   #6
J-Max
Пользователь
 
Регистрация: 04.02.2010
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
В той есть, а в ее свойствах нет.
Проверяй каждое свойство этого интерфейса, если его используешь - это не будет лишне
Я всяко проверял. Ведь перед сравнением поставил вызов той и другой переменной в ShowMessage. По циклу так прошелся. Та и другая переменная нашлась, а как сравнить - не знаю.
J-Max вне форума Ответить с цитированием
Старый 10.02.2010, 15:02   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Та и другая переменная нашлась
И значения у них не nil?
Тогда по шагам проверяй на каждой строчке какое свойство лажает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2010, 15:35   #8
J-Max
Пользователь
 
Регистрация: 04.02.2010
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
И значения у них не nil?
Тогда по шагам проверяй на каждой строчке какое свойство лажает.
А есть какой-нибудь рабочий способ пройтись по всем картинкам на странице и узнать их href?
J-Max вне форума Ответить с цитированием
Старый 10.02.2010, 15:40   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я не очень хорошо знаю те интерфейсы которые ты используешь )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2010, 16:24   #10
J-Max
Пользователь
 
Регистрация: 04.02.2010
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я не очень хорошо знаю те интерфейсы которые ты используешь )
Может подскажешь тогда нормальный интерфейс?
J-Max вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись числа типа инт в ячейку двумерного массива типа char AxenicX Помощь студентам 1 25.09.2009 00:35
поведение браузеров Antoha HTML и CSS 2 30.05.2009 22:09
Непонятное поведение алгоритма master_root Общие вопросы Delphi 3 11.06.2008 14:32
Непонятное поведение программы на Delphi Kashp Помощь студентам 10 14.12.2007 21:12