Показать сообщение отдельно
  #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
Ответить с цитированием