Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.015 c
1-58658
Dimich1978
2003-09-05 08:31
2003.09.18
Помогите считать из файла данные.


3-58549
Blondin
2003-08-27 14:46
2003.09.18
IBХ -виды транзакций


7-58928
Nick Denry
2003-07-06 20:09
2003.09.18
Как моей программе узнать, что пользователь открыл CD-Room в 9x?


1-58737
dream
2003-09-06 14:19
2003.09.18
Почему у listview нет такой процедуры как в listbox ?


1-58611
DelphiNew
2003-09-08 14:58
2003.09.18
Чувствительность к регистру





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский