Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.09.2014, 16:23
Pcrepair
 
Сообщения: n/a
По умолчанию НЕпонятное с 'Invalid variant operation' WinXP или Win7

Добрый день.

есть код

Код:
procedure TMain.ListBox2KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
const  WebSearchId='text';
var SRStr:string;  Data:variant;
begin   (*перенос значения строки в окно ввода страницы в браузере*)
  if (Key = VK_RETURN) then
  SRStr:=(ListBox2.Items[ListBox2.ItemIndex]);

  if not Assigned(Wbbr.Document) then Exit;
  if Wbbr.OleObject.Document.all.tags('FORM').Length <> 0 then
  Data:=Wbbr.Oleobject.Document.GetElementByID(WebSearchId);
  Data.Value:=SRStr;
end;
1. Компилляция происходит нормально.
2. при запуске программы в WinXP все нормально (ну кроме того что под ИЕ8 не работает часть функций)
3. при запуске программы в Win7 (IE9) все работает, но при запуске процедуры вылазит : First chance exception at $7584D36F. Exception class EVariantInvalidOpError with message 'Invalid variant operation'. Process KWFinder.exe (1024), источник

Код:
unit System.Variants;

procedure VarInvalidOp;
begin
  raise EVariantInvalidOpError.Create(SInvalidVarOp);
end;
Компиляция в Win7 ничего не изменила

Вопросы : где косяк? и что делать?
Ответить с цитированием
  #2  
Старый 12.09.2014, 15:03
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Что делать?

Пройти по шагам в Debug-режиме, и глянуть на какой строке происходит вылет(ошибка)
Ответить с цитированием
  #3  
Старый 12.09.2014, 16:20
Pcrepair
 
Сообщения: n/a
По умолчанию

умно, умно, но не по теме
ошибка возникает при попытке передачи нуля в ВАРИАНТ, там так и написано: 'Invalid variant operation'
читаем внимательно
Ответить с цитированием
  #4  
Старый 12.09.2014, 16:56
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Дак ты спросил "где косяк и что делать", тебе и ответили, как найти место этого косяка.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #5  
Старый 12.09.2014, 18:55
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Если внимательно приглядеться к представленному быдлокоду, можно увидеть, что в последней строчке переменная Data запросто может быть не определена:
Код:
    Data.Value:=SRStr;
В этой строчке в Data ожидается OleObject, но из-за отсутствия begin-end при невыполнении условия в if Data будет иметь вариантное значение Empty, что и вызовет исключение.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #6  
Старый 12.09.2014, 18:59
Pcrepair
 
Сообщения: n/a
По умолчанию

ага, как было сказано ранее :
ошибка возникает при попытке передачи нуля в ВАРИАНТ, там так и написано: 'Invalid variant operation'

хорошо что ты заметил пусть и не сразу

а теперь покажи свое не БЫДЛОКОД, если такой умный
Ответить с цитированием
  #7  
Старый 12.09.2014, 19:02
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от Pcrepair
где косяк?
нет проверки результата GetElementByID на Null;
Цитата:
Сообщение от Pcrepair
что делать?
добавить проверку.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #8  
Старый 12.09.2014, 19:18
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Слыш, ты чо такой дерзкий?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #9  
Старый 12.09.2014, 19:24
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Смех

Не получается, вот и нервничает
sorry for offtop
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #10  
Старый 12.09.2014, 20:08
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Да это тот клоун походу, SeemanTM.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #11  
Старый 12.09.2014, 20:10
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Смех

вот еще его нытье на другом форуме http://www.sql.ru/forum/1115230/nepo...winxp-ili-win7
кста, не в первый раз что ему советуют он не понимает
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #12  
Старый 12.09.2014, 20:51
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Pcrepair
а теперь покажи свое не БЫДЛОКОД, если такой умный
Ага, ага, перед каждым быдлокодером расшаркиваться. В моей системе ценностей любой код, оформленный не по стандартам Borland/Embarcadero -- быдлокод. Сам же от этого и страдаешь ведь.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
Этот пользователь сказал Спасибо Freeman за это полезное сообщение:
Uniq! (14.09.2014)
  #13  
Старый 14.09.2014, 22:25
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

ВОТ ЭТО тема!!! О Гоги, я нашёл то, что искал на протяжении всего обучения в ВУЗЕ. Freeman в который раз, спасибо
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter