Форум: "Начинающим";
Текущий архив: 2008.05.18;
Скачать: [xml.tar.bz2];
ВнизОшибка при присваивании значения переменной класса Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.046 c