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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2017, 16:41   #11
BoNaPaRtD
Пользователь
 
Регистрация: 06.03.2017
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Для начала узнать где nil.
Такая ошибка ("Access vioation... Read of address 0000...") скорее всего говорит о том, что вы где-то попытались обратиться к объекту по указателю, в котором в этот момент лежит nil.
Как я понял nil в delphi значит отсутствие значения и как же найти его?
BoNaPaRtD вне форума Ответить с цитированием
Старый 19.03.2017, 16:46   #12
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от BoNaPaRtD Посмотреть сообщение
Как я понял nil в delphi значит отсутствие значения
https://ru.wikipedia.org/wiki/%D0%A3...D%D1%8B%D1%85)

Цитата:
Сообщение от BoNaPaRtD Посмотреть сообщение
как же найти его
Смотреть значения того, к чему вы обращаетесь в этом месте.
WebBrowser1, WebBrowser1.OleObject, WebBrowser1.OleObject.Document, ...
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.03.2017, 16:49   #13
BoNaPaRtD
Пользователь
 
Регистрация: 06.03.2017
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
https://ru.wikipedia.org/wiki/%D0%A3...D%D1%8B%D1%85)


Смотреть значения того, к чему вы обращаетесь в этом месте.
WebBrowser1, WebBrowser1.OleObject, WebBrowser1.OleObject.Document, ...
А как посмотреть значения того, к чему я обращаюсь в этом месте?
BoNaPaRtD вне форума Ответить с цитированием
Старый 19.03.2017, 16:56   #14
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну в отладчике же можно как-то. После остановки по брекпоинту либо курсор навести, либо где-то есть кнопка типа "Получить значение выражения" (или в Watch добавить).

Или просто добавить вывод типа
Код:
if ... = nil then
  ShowMessage("....."); // или Assert, или raise Exception.Create(".....")
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.03.2017, 17:13   #15
BoNaPaRtD
Пользователь
 
Регистрация: 06.03.2017
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну в отладчике же можно как-то. После остановки по брекпоинту либо курсор навести, либо где-то есть кнопка типа "Получить значение выражения" (или в Watch добавить).

Или просто добавить вывод типа
Код:
if ... = nil then
  ShowMessage("....."); // или Assert, или raise Exception.Create(".....")
Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.OleCtrls, SHDocVw;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('www.seosprint.net');

end;

procedure TForm1.Button2Click(Sender: TObject);
var
log:integer;
html_tag:variant;
begin
 html_tag:=WebBrowser1.OleObject.Document.forms.item(0).elements;
 for log :=0 to (html_tag.length-1) do
 begin
   if html_tag.item(log).id='mnu302' then
   html_tag.item(log).click;
   if Assert = nil then
  ShowMessage('Assert'); // или Assert, или raise Exception.Create(".....")

 end;

end;

end.
Вот код, добавил вывод типа, но почему то стало выдавать ошибки и программа вообще не запускается
BoNaPaRtD вне форума Ответить с цитированием
Старый 19.03.2017, 17:17   #16
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Фигню какую-то добавили, перечитывайте ссылки и сообщения )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.03.2017, 19:50   #17
BoNaPaRtD
Пользователь
 
Регистрация: 06.03.2017
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Фигню какую-то добавили, перечитывайте ссылки и сообщения )
Код:
if ... = nil then
  ShowMessage("....."); // или Assert, или raise Exception.Create(".....")
Куда тогда это вставлять?
BoNaPaRtD вне форума Ответить с цитированием
Старый 20.03.2017, 18:50   #18
BoNaPaRtD
Пользователь
 
Регистрация: 06.03.2017
Сообщений: 16
По умолчанию

Мне кто то будет помогать? Я уже перечитал все эти статьи, нигде нет информации почему возникает такая ошибка. Я уже понял что nill это что то нулевое, которое указывает на указатель и при этом имеет значение 0. А указатель это переменная которая хранит в себе адреса данных. Но решение ошибки где?
BoNaPaRtD вне форума Ответить с цитированием
Старый 20.03.2017, 19:01   #19
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так ответил уже, но вы не поняли. Вроде бы ничего сложного или требующего каких-то сверхзнаний в ответах не было.

↓↓↓↓↓↓↓
Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Смотреть значения того, к чему вы обращаетесь в этом месте.
WebBrowser1, WebBrowser1.OleObject, WebBrowser1.OleObject.Document, ...
Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну в отладчике же можно как-то. После остановки по брекпоинту либо курсор навести, либо где-то есть кнопка типа "Получить значение выражения" (или в Watch добавить).

Или просто добавить вывод типа
Код:
if ... = nil then
  ShowMessage("....."); // или Assert, или raise Exception.Create(".....")
Под ... там имелось в виду то, что в предыдущем сообщении.
Для непонятных слов (Assert) есть гугл/документация.

И да, вам никто не обязан помогать )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 20.03.2017 в 19:03.
Alex11223 вне форума Ответить с цитированием
Старый 20.03.2017, 19:13   #20
BoNaPaRtD
Пользователь
 
Регистрация: 06.03.2017
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Так ответил уже, но вы не поняли. Вроде бы ничего сложного или требующего каких-то сверхзнаний в ответах не было.

↓↓↓↓↓↓↓


Под ... там имелось в виду то, что в предыдущем сообщении.
Для непонятных слов (Assert) есть гугл/документация.

И да, вам никто не обязан помогать )
Assert сделан для проверки истинности выражения
BoNaPaRtD вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При использовании скрипта не выполняется переход по ссылке masalex Помощь студентам 0 10.12.2016 14:06
Оптимизация скрипта на Perl, который генерирует самую короткую программу на языке Brainfuck, выводящую заданный текст. timcryt Perl 1 13.07.2016 10:49
Помогите решить задачу (Delphi 7) - Нужно построить график, который должен полностью соответствовать картинке QeTro! Помощь студентам 5 19.12.2015 12:51
код, который должен открывать файл, находить в нем определенный символ и заменять его на другой, не записывает в файл Dima-War Общие вопросы C/C++ 2 14.12.2013 21:35
должен подгрузиться скрипт который бы создал и вставил в этот див <iframe></iframe> Beni JavaScript, Ajax 1 05.08.2009 14:30