Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.18;
Скачать: CL | DM;

Вниз

Ошибка при присваивании значения переменной класса   Найти похожие ветки 

 
Dmitry   (2008-04-16 21:11) [0]

Помогите разобрать почему возникает ошибка при присваивании переменной класса (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;


 
Сергей М,   (2008-04-16 21:13) [1]


> переменной класса (F


> B := True { ОШИБКА ПОЯВЛЯЕТСЯ ЗДЕСЬ }


Хня какая-то)...


 
Leonid Troyanovsky ©   (2008-04-16 21:24) [2]


> Dmitry   (16.04.08 21:11)  

> Помогите разобрать почему возникает ошибка при присваивании
> переменной класса

Создавать экземпляр оного класса будет Пушкин?

--
Regards, LVT.


 
Palladin ©   (2008-04-16 21:26) [3]

да почему сразу это растение :) камрад овощь просто не создал объект :)

там еще и точки с запятой нет...


 
Сергей М,   (2008-04-16 21:39) [4]


> почему сразу это растение


Ну как почему ?
Ты вчитайся в траву-то эту - в вопросе F:Boolean, а в тексте комментарий об ошибке стоит в строчке, где оной и не пахнет, зато курится совсем другая переменная - B:Boolean

))


 
Германн ©   (2008-04-16 21:43) [5]


> Ты вчитайся в траву-то эту

Предупреждать заранее надо, что это вредно для здоровья.


 
Palladin ©   (2008-04-16 21:54) [6]


>Сергей М, (16.04.08 21:39) [4]

а ить верно :)
экран маленький, сразу все не углядеть...


 
Сергей М,   (2008-04-16 22:00) [7]

Вот приедет барин - барин нас покурит)


 
Сергей М,   (2008-04-16 22:03) [8]

А барином, как прозорливо протелепатил ув. LT, вполне вероятно может оказаться и Пушкин)


 
Германн ©   (2008-04-17 00:28) [9]


> Сергей М,   (16.04.08 22:03) [8]
>
> А барином, как прозорливо протелепатил ув. LT, вполне вероятно
> может оказаться и Пушкин)
>

Вполне. Вот только каким образом
>  B := True { ОШИБКА ПОЯВЛЯЕТСЯ ЗДЕСЬ }

автор это узнал? На мой взгляд эта ошибка должна бы была появиться гораздо раньше.


 
ЮЮ ©   (2008-04-17 05:28) [10]

> На мой взгляд эта ошибка должна бы была появиться гораздо
> раньше.

Куда уж раньше то?
при таком использовании

 TNieL_Tree.LLastConf("a.txt", Anvil_TreeView1);

именно таи и появится, ибо B - не преременная класса, а приватное поле экземпляра класса, а экземпляр не создан.



Страницы: 1 вся ветка

Текущий архив: 2008.05.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
2-1208498104
dedo
2008-04-18 09:55
2008.05.18
Консольное приложение.Readln


3-1197295966
Kolan
2007-12-10 17:12
2008.05.18
TADOCommand не нравится GO, почему?


15-1207032765
Bober_crazy
2008-04-01 10:52
2008.05.18
1 апреля или правда?


2-1208361521
Igor
2008-04-16 19:58
2008.05.18
Упорядочить фаил..


6-1186665472
r.o.o.t
2007-08-09 17:17
2008.05.18
Как правельно обрабоать обрыв свзяи в TServerSocket