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

Вниз

Не могу понять в чем ошибка :(   Найти похожие ветки 

 
Ghost ©   (2003-09-06 13:37) [0]

Работаю с ini файлом , если приложение работает и вызываешь такой код при нажатии на кнопку то всё ок !

if ini.ReadString("exe0","window","") <> "" then L2.Items[0].SubItems[1]:= ini.ReadString("exe0","window","");
if ini.ReadString("exe1","window","") <> "" then L2.Items[1].SubItems[1]:= ini.ReadString("exe1","window","");
if ini.ReadString("exe2","window","") <> "" then L2.Items[2].SubItems[1]:= ini.ReadString("exe2","window","");
if ini.ReadString("exe3","window","") <> "" then L2.Items[3].SubItems[1]:= ini.ReadString("exe3","window","");
if ini.ReadString("exe0","path","") <> "" then L2.Items[0].SubItems[0]:= ini.ReadString("exe0","path","");
if ini.ReadString("exe1","path","") <> "" then L2.Items[1].SubItems[0]:= ini.ReadString("exe1","path","");
if ini.ReadString("exe2","path","") <> "" then L2.Items[2].SubItems[0]:= ini.ReadString("exe2","path","");
if ini.ReadString("exe3","path","") <> "" then L2.Items[3].SubItems[0]:= ini.ReadString("exe3","path","");

если ставишь его на таймер чтобы грузился при загрузке приолжения то выскакивает ошибка , хотя ini файл создаёться и обрабатываеться другими командами !


 
y-soft ©   (2003-09-06 13:39) [1]

Есть подозрение, что в момент вызова при загрузке L2 еще не создан...


 
Ghost ©   (2003-09-06 13:40) [2]

Ошибка такого типа : Acces violation at addres 0049e999 in module "Project1.exe" Read of addres 000000008

Не могу разобраться !


 
y-soft ©   (2003-09-06 13:41) [3]

Еще больше подтверждает...


 
Ghost ©   (2003-09-06 13:41) [4]

> y-soft

Я тоже так думал ставил на вызов обработки 2-5 сек времени чтобы все компоненты успели создаться ! но нет ! а так работает :( ( когда обработчик вызываешь сам )


 
Zacho ©   (2003-09-06 13:42) [5]

Какая ошибка ? И нафига на таймер ? Вообщем, подробнее: где, когда и как создается ini и L2.


 
y-soft ©   (2003-09-06 13:45) [6]

>Ghost © (06.09.03 13:41) [4]

У вас исключение явно говорит, что где-то идет обращение к nil

Так что действительно - приведите код


 
Ghost ©   (2003-09-06 13:45) [7]

> Zacho

ini создаёться при FormCreate

код :
var pzm:string;
-------------
try
path:=ExtractFilePath(paramstr(0));
pzm:=path+"data\Config.cfg";
try
ini:=tinifile.Create(pzm);
except
end;

А L2 это listView и создавать его должна сама форма насколько я знаю !


 
y-soft ©   (2003-09-06 13:49) [8]

Зря Вы раотаете по таймеру - он может запуститься еще до загрузки L2. Запускайте таймер явно, в самом конце FormCreate


 
Zacho ©   (2003-09-06 13:52) [9]

И все равно не понял, зачем это делать по таймеру ???


 
Ghost ©   (2003-09-06 13:53) [10]

> y-soft

Пробывал и без таймера та же ошибка ! как отследить успевает ли создаться Listview ?


 
y-soft ©   (2003-09-06 13:53) [11]

Действительно, гораздо логичнее читать из INI в том же FormCreate...


 
Ghost ©   (2003-09-06 13:55) [12]

У меня форма при старте скрываеться вот таким образом :

form1.Hide; может в этом дело ?


 
Zacho ©   (2003-09-06 13:55) [13]


> Ghost © (06.09.03 13:53) [10]

Ну а без таймера, где именно вызывается этот код ?


 
y-soft ©   (2003-09-06 13:55) [14]

>Ghost © (06.09.03 13:53) [10]

ListView успевает создаться :)

А breakpoint в отладчике ставить не пробовали?


 
Zacho ©   (2003-09-06 13:55) [15]


> Ghost © (06.09.03 13:55) [12]

Нет, не в этом.


 
Ghost ©   (2003-09-06 13:56) [16]

При CreateForm из ini файла читать dcq равно почему то не получаеться ! но это уже другая проблема ! как всётаки узнать успел ли создаться Listview ?


 
Zacho ©   (2003-09-06 13:59) [17]


> Ghost © (06.09.03 13:56) [16]
> как всётаки узнать
> успел ли создаться Listview ?

А зачем ? В OnCreate он уже создан.


 
Ghost ©   (2003-09-06 14:00) [18]

> Zacho
> Ну а без таймера, где именно вызывается этот код ?

Код вызывался из actionList при задержке после старта в 1 сек ( без таймера )
Причём вся загрузка шла на отлично ( то есть из тогоже файла ini брались данные и записывались в listbox и checkbox )
У меня такая проблема появилась как раз когда поставил Listview скорей всего в нём проблема !

> y-soft
> А breakpoint в отладчике ставить не пробовали?

Пробывал ! но или я ещё толком не научился им пользоваться или дело действительно запутанное :(


 
Sniffer ©   (2003-09-06 14:00) [19]

>>Ghost
Напиши свой
try
ini:=tinifile.Create(pzm);
except
end;
в OnShow формы. 100% ListView создаётся раньше.


 
Ghost ©   (2003-09-06 14:02) [20]

> Sniffer

1) у меня нет OnShow ! она закрыта так как программа работает в фоновом режиме !
2) тет дело не в создании ini ! ( дрегие функции работают нормально ) а в загрузке его в listview


 
y-soft ©   (2003-09-06 14:03) [21]

Ну так и поставьте breakpoint на строчку

if ini.ReadString("exe0","window","") <> "" then L2.Items[0].SubItems[1]:= ini.ReadString("exe0","window","");

И, когда дойдет до нее очередь, посмотрите значения Ini и L2


 
y-soft ©   (2003-09-06 14:05) [22]

Кстати, Вы как L2 заполняете? В смысле - Items[0] и SubItems[1] на момент вызова уже существуют?


 
cyborg ©   (2003-09-06 14:05) [23]

[19] Sniffer © (06.09.03 14:00)
Не нужно советовать таких кошмаров - при каждом показе формы будет создаваться ini.


 
Ghost ©   (2003-09-06 14:10) [24]

точно ! сделал загрузку значений не в Listview а в переменные

I1,I2,I3,I4:string; Ошибки не возникло ! значит виноват во всём Listview ! кстати Items[0] и SubItems[1] на момент записи уже есть !


 
y-soft ©   (2003-09-06 14:13) [25]

кстати Items[0] и SubItems[1] на момент записи уже есть !

Вы это точно в отладчике видели?


 
Ghost ©   (2003-09-06 14:16) [26]

> y-soft

Я их сам создал в режиме проектирования ! я так думаю что там они должны быть !
Кстати что я установил : пока не покажешь форму записать значения нельзя :(


 
y-soft ©   (2003-09-06 14:26) [27]

В Вашем случае ясно одно - при попытке записи значения в ListView возникает исключение при чтении по недействительному указателю. Вот этот указатель и надо найти.
Это может быть либо Items[], либо SubItems[] - другого тут вроде бы быть не должно...



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

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

Наверх




Память: 0.53 MB
Время: 0.026 c
3-58520
Петрович
2003-08-28 11:57
2003.09.18
Как после SQL запроса


1-58624
Abikos
2003-09-05 15:14
2003.09.18
Как переключится в окно ???


4-58979
DimaS
2003-07-17 13:42
2003.09.18
Как проинсталлировав файл шрифта, затем что то им написать?


4-58965
Anisimov
2003-07-16 12:27
2003.09.18
Как отловить запись файлов на дискету?


14-58827
Cyber Chaynik
2003-08-30 03:09
2003.09.18
Какая мышь лучше ?