Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обнуление переменной.


Страницы:   1 2

Alex_Petr ©   (2004-12-22 20:31:00) 

Код такой:
procedure TMainForm.ToolButton3Click(Sender: TObject);
var
List:TStringList;
begin
List:=TStringList.Create;
try
 // Работа с чужим компонентом, используещим интерфейсы.
 // Переменная List здесь не упоминается.
except
 // Сюда не попадаем
end;
ShowMessage(List.Text);// <-- List=nil !!!
List.Free;
end;


В чем я могу ошибаться ?
P.S. На компонент (покупной), пока, грешить поводов не было.
Он требует: CoInitializeEx и CoInitializeSecurity, что и предоставляется
при инициализации.


Alex_Petr   (2004-12-22 21:27:00) [21]

>1. Версия Delphi?
Delphi 7
2. Оптимизация включена?
И включал и отключал - все едино.


Alex_Petr   (2004-12-22 21:25:00) [22]

>И ваще. Прийдись отладчиком.
Проходил, обнуление происходит не доходя до конца процедуры.
>Покажи сесь код.
Завтра, буду на работе - покажу, но он Вам :(( не поможет.
Там пара нестандартных функций, встроеннык в компонент ( исходников нет )
>Assigned - False возвращает?
да.


VMcL   (2004-12-22 21:22:00) [23]

>> Alex_Petr ©

1. Версия Delphi?
2. Оптимизация включена?


Sun bittern   (2004-12-22 21:20:00) [24]

Assigned - False возвращает?


Fay   (2004-12-22 21:20:00) [25]

Покажи сесь код.


Fay   (2004-12-22 21:19:00) [26]

Где-то в коде ошибка (возможно, в приведении типов) и в память по адресу @List пишется что-то (в данном случае - 0).
Как отрабатывает вот это?
procedure TMainForm.ToolButton3Click(Sender: TObject);
var
 List:TStringList;
begin
 List:=TStringList.Create;
 List.Text := 'Всё пучком';
 ShowMessage(List.Text);
 List.Free;
end;


И ваще. Прийдись отладчиком.


Alex_Petr   (2004-12-22 21:17:00) [27]

Проверял и брайкпоинтом: в середине блока try - except
List, неожиданно становиться nil.
P.S. Не только Delphi, но и систему переустанавливал.


Alex_Petr   (2004-12-22 21:13:00) [28]

>Может всетаки имеет место быть: List.Text := '';
Все проверил: именно List=nil.


Sun bittern   (2004-12-22 21:11:00) [29]

var
 List:TStringList;
begin
 List:=TStringList.Create;
 try
   try
     // Работа с чужим компонентом, используещим интерфейсы.
     // Переменная List здесь не упоминается.
   except
     // Сюда не попадаем
   end;
   ...
 finally
   ShowMessage(List.Text);// <-- List=nil !!!
   List.Free;
 end;
end

>> ShowMessage(List.Text);// <-- List=nil !!!

Может всетаки имеет место быть:
List.Text := '';

Уничтожен объект или нет проверьте так:
if Assigned(List) then ...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо