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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.04.2008, 21:13
NeiL NeiL вне форума
Прохожий
 
Регистрация: 29.11.2007
Сообщения: 28
Репутация: 10
По умолчанию Ошибка при присваивании

Помогите разобрать почему возникает ошибка при присваивании переменной класса (F: Boolean) какого-либо значения (Project Test.exe raised exception class EAccessViolation with message 'Access violation at address 004FD000 in module 'Test.exe').

Вот код:

Код:
unit NieL_Tree;

interface

uses
  SysUtils, Classes, anvil_Nodes, anvil_Objs, StdCtrls;

type
  TNieL_Tree = class(TObject)
  private
    B: Boolean;
  public  
    procedure LLastConf(
      FileName: String; Ctrl: Tanvil_TreeView);
  end;

implementation

{ TNieL_Tree }

procedure TNieL_Tree.LLastConf(FileName: String; Ctrl: Tanvil_TreeView);
var
  L: TIntegerList;
  F: TFileStream;
  Cur: TTreeItem;
  i: Integer;
begin
  B := True { ОШИБКА ПОЯВЛЯЕТСЯ ЗДЕСЬ }
  if FileExists(FileName) then
  begin
    F := TFileStream.Create(FileName, fmOpenRead);
    try
      if F.Size > 0 then
      begin
        L := TIntegerList.Create;
        try
          L.Read(F);
          Cur := Ctrl.Items[0];
          repeat
            Cur := Cur.Next;
            for i := 0 to L.Count - 1 do
              if Cur.Tag = L[i] then
              begin
                Cur.CheckState := cbChecked;
                if Cur.CheckState <> Cur.Parent.CheckState then
                  ClickItem(Ctrl, Cur);
              end;
          until
            Cur = Ctrl.Items.GetLast;
        finally
          L.Free;
        end;
      end else
        DefaultItemChecked(
          Ctrl, cbChecked);
    finally
      F.Free;
    end;
  end else
    DefaultItemChecked(
      Ctrl, cbChecked); 
end;

Admin: http://www.delphisources.ru/forum/mi...do=bbcode#code

Последний раз редактировалось Admin, 16.04.2008 в 21:18.
Ответить с цитированием
  #2  
Старый 16.04.2008, 23:52
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

Синтаксис проверь..Хотя могу и ошибаться..Delphi загружать лень=)
Код:
B:=True{ОШИБКА ПОЯВЛЯЕТСЯ ЗДЕСЬ};
Может ";" забыл?

Либо переменную не там объявил. Опиши её не в private а в public

Последний раз редактировалось Кодер, 16.04.2008 в 23:55.
Ответить с цитированием
  #3  
Старый 17.04.2008, 02:41
Аватар для zip000
zip000 zip000 вне форума
Начинающий
 
Регистрация: 24.07.2007
Сообщения: 194
Репутация: 25
По умолчанию

NeiL, а вы уверены что ошибка именно тут? Пройдитесь дебагером по процедуре. И да, а сам обьект то проинициализировали перед использованием?
__________________
Не профи, но и не чайник . D6 - лучше не придумали. Пока.
Ответить с цитированием
  #4  
Старый 17.04.2008, 09:32
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

Пройдись вообще - пошагово откомпиль
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter