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

Вниз

Invalid pointer operation при закрытии. Почему???   Найти похожие ветки 

 
Луарвик   (2004-10-25 14:34) [0]

А еще, если юзать application.Destroy то вродь ошибок нет. Хотя в хелпе написано, чтоб "Never call Application.Destroy!!!"


 
Pentium133 ©   (2004-10-25 14:37) [1]

х.з.
твоя программа ты и разбирайся. неизвестно что у тебя там творится!


 
Johnmen ©   (2004-10-25 14:41) [2]

Обращение по несуществующему указателю.
И ещё.
Если установлен знак "Проезда нет. Впереди обрыв", то ты конечно можешь на него наплевать...


 
clickmaker ©   (2004-10-25 14:42) [3]


>  Луарвик   (25.10.04 14:34)
> А еще, если юзать application.Destroy

лучше юзать Halt()


 
Pentium133 ©   (2004-10-25 14:51) [4]


> лучше юзать Halt()

Ага, сразу после Application.Initialize - ошибка должна исчезнуть.


 
Johnmen ©   (2004-10-25 14:57) [5]

>Ага, сразу после Application.Initialize - ошибка должна
>исчезнуть.

Не надо путать Halt и Application.Terminate


 
clickmaker ©   (2004-10-25 15:28) [6]


> [5] Johnmen ©   (25.10.04 14:57)
> >Ага, сразу после Application.Initialize - ошибка должна
>
> >исчезнуть.
>
> Не надо путать Halt и Application.Terminate

Чиста реальные пацаны юзают только Halt. Быстро и безболезненно


 
Pentium133 ©   (2004-10-25 15:31) [7]

Ага! Halt-гитлер!


 
Луарвик   (2004-10-25 23:01) [8]

Гм. (...не обращая внимания на издевки...)

procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
for i:=0 to Stringgrid1.Rowcount do his[i]:=TStringList.Create;
end;

Че то с этой строкой. Если убрать - ошибки нет.


 
Cobalt ©   (2004-10-25 23:50) [9]

Мне так думается, что как раз в другом месте - там, где с этим  his работают и в конце-концов освобождают.

К сожалению, телепаты всё ещё в отпуске, поэтому сказать, что не так в работе с этой загадочной переменной
<telepat mode=on>
Это массив!
<telepat mode=off>

сказать не могу :(


 
Луарвик   (2004-10-26 00:14) [10]

if Cobalt.clever:=true then begin
скажи, как освободить массив из TStrings, потому что
his:=nil;
close;
не пашет!
end;


 
Defunct ©   (2004-10-26 00:55) [11]

> Луарвик   (26.10.04 00:14) [10]

Хамить здесь не нужно. В вашем посте проглядывается ирония в адрес Cobalt, как-будто он что-то не то сказал. На самом деле вы задали очень широкий ворос, и на удивление Cobalt все-таки как-то телепатически конкретизировал ваш вопрос, хотя мог бы просто промолчать или послать по адресу "как правильно задавать вопросы".

Массив из TStrings можно освободить так:

Table : Array of TString;

For I:=0 To Length(Table)-1 Do Table[i].Free;
Table := Nil;


 
Defunct ©   (2004-10-26 07:48) [12]

продолжу идею.

конечно же, после his:=nil происходят еще какие-то события, в обработчиках которых возможно есть обращения к освобожденному массиву. Вот и возникает исключение.


 
Alx2 ©   (2004-10-26 08:19) [13]

>Луарвик   (25.10.04 23:01)

for i:=0 to Stringgrid1.Rowcount-1 do his[i]:=TStringList.Create;


 
Alx2 ©   (2004-10-26 08:22) [14]

Вдогонку Alx2 ©   (26.10.04 08:19) [13]
Конечно, если Length(his) = Stringgrid1.Rowcount


 
AlexKocharin ©   (2004-10-26 08:35) [15]


>For I:=0 To Length(Table)-1 Do Table[i].Free;
>Table := Nil;


А я бы сделал так:

for i:=0 to high(Table) do Table[i].Destroy;
setlength(Table,0);


 
begin...end ©   (2004-10-26 09:21) [16]

А я бы сделал так:

for I := 0 to High(Table) do
 FreeAndNIL(Table[I])


 
Johnmen ©   (2004-10-26 10:43) [17]

Хм... А надо так

for I := Low(Table) to High(Table) do
 FreeAndNIL(Table[I])



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

Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.037 c
6-1093954630
Дядя
2004-08-31 16:17
2004.11.07
Цепочка прокси-серверов


1-1098732917
Colonel
2004-10-25 23:35
2004.11.07
Меню в Desktop


3-1097408305
alextov
2004-10-10 15:38
2004.11.07
Превращение курсора в часики на время выполнения запроса


14-1098027153
olookin
2004-10-17 19:32
2004.11.07
Универсализация или прагматичность?


3-1097271774
Sid
2004-10-09 01:42
2004.11.07
IBase не находит файл *.gdb на сетевом диске





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский