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

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

Освобождение ресурса в finally


Страницы:   1 2 ... 17 18 19 20 21 22 23 ... 32 33

Arinyshka ©   (2008-04-23 12:17:00) 

Не подскажете еще один момент:
Есть процедура, выглядит примерно так

procedure TSetPayFrm.BtnAddImageClick(Sender: TObject);
var  TempBitmap:TBitmap;
begin
if not(opendialog1.Execute) then  exit;
try
 TempBitmap  := TBitmap.Create;
 TempBitmap.LoadFromFile(OpenDialog1.FileName);
finally
TempBitmap.Free;
end;
end;

На освобождение  TempBitmap.Free; выдает варнинг
[Warning] uSetPaymentMain.pas(313): Variable 'TempBitmap' might not have been initialized
Не смертельно, но непонятно... почему варнинг? При изменениии условия и включении всей конструкции в один блок begin..end ситуация не менялась.


Экс-Оригинал   (2008-04-27 00:51:00) [381]


> Восхищенный   (27.04.08 00:47) [270]
> > Экс-Оригинал   (27.04.08 00:44) [268]С двух раз тебе тоже
> непонятно? Тогда ничем не могу помочь.


Ну что можно сказать на пустой трёп? Только развести руками.

Он, должно быть, очень невежественный человек, поскольку отвечает на все вопросы, которые ему задают./Франсуа Вольтер/


Восхищенный   (2008-04-27 00:47:00) [382]

> Экс-Оригинал   (27.04.08 00:44) [268]

С двух раз тебе тоже непонятно? Тогда ничем не могу помочь.


Экс-Оригинал   (2008-04-27 00:47:00) [383]


> Пока ты не появился, разговор шел о Delphi.


Уж ты точно своими последними высказываниями говоришь о Delphi.


Восхищенный   (2008-04-27 00:45:00) [384]


> Loginov Dmitry ©   (27.04.08 00:42) [267]


Снова врешь.


Экс-Оригинал   (2008-04-27 00:44:00) [385]


> Восхищенный   (27.04.08 00:20) [264]
> > Экс-Оригинал   (27.04.08 00:14) [263]Вот именно: не хочешь
> ничего говорить - не флуди.Пока ты не появился, разговор
> шел о Delphi.


Хорош демагогию разводить.
Докажи свою точку зрения или согласись, что трепаться нехорошо.


Loginov Dmitry   (2008-04-27 00:42:00) [386]

> Не ври.


Врать? Зачем мне это?

> В VCL сплошь и рядом код такого типа:
> захват ресурса или создание объекта
> try
> действия
> finally
> освобождение ресурса или уничтожение объекта
> end;


А также там сплошь и рядом код такого типа:

захват ресурса или создание объекта
захват ресурса или создание объекта
try
действия
finally
освобождение ресурса или уничтожение объекта
освобождение ресурса или уничтожение объекта
end;


Игорь Шевченко   (2008-04-27 00:28:00) [387]

столько известных анонимов развелось - диву даться


{RASkov}   (2008-04-27 00:21:00) [388]

> Я просмотрел исходники VCL для Delphi7 - там сплошь и рядом этот "дилетанский" код.

В VCL сплошь и рядом код такого типа:
захват ресурса или создание объекта
try
 действия
finally
 освобождение ресурса или уничтожение объекта
end;


Восхищенный   (2008-04-27 00:20:00) [389]

> Экс-Оригинал   (27.04.08 00:14) [263]

Вот именно: не хочешь ничего говорить - не флуди.
Пока ты не появился, разговор шел о Delphi.


Экс-Оригинал   (2008-04-27 00:14:00) [390]


> Не надо меня разводить, не выйдет.


Еще чего - разводить.


> Не хочешь принимать на веру - не принимай, никто не заставляет.


Ты не мессия.
Не хочешь ничего говорить - не флуди.


Восхищенный   (2008-04-27 00:01:00) [391]

> Экс-Оригинал

Не надо меня разводить, не выйдет. Я ж тебе сказал, что доказывать я никому ничего не собираюсь. И объяснил, почему (и прав оказался).

Не хочешь принимать на веру - не принимай, никто не заставляет.

> Loginov Dmitry ©   (26.04.08 22:22) [261]

Не ври.


Loginov Dmitry   (2008-04-26 22:22:00) [392]

> Доказать можно, но слишком долго - это раз


Пока доказательств не будет, можно считать, что
а) доказать это нельзя
б) доказывать вам просто лень

Насчет [255]. Я просмотрел исходники VCL для Delphi7 - там сплошь и рядом этот "дилетанский" код. Получается, что все, кто Дельфю разрабатывает - дилетанты. А дилетанты не умеют программировать и не знают Delphi. Приходим к однозначному выводу: разработчики Delphi не знают Delphi! Как вам?


Экс-Оригинал   (2008-04-26 21:10:00) [393]


> Восхищенный   (26.04.08 20:40) [258]


Сорри, пред. пост от меня. Немного дурковал в трёпе.


Пёсик В   (2008-04-26 21:07:00) [394]


> 2. Два присваивания подряд:A := nil;try  A := TSomeClass.
> Create;  ...это код дилетанта.


Хотелось бы вот насчет этого комментарий услышать.

Первая строка присваивание, а вторая - выполнение функции, и лишь потом присваивание.

Так что это не одинаковые присваивания.


>  Ты же видишь - [255] было просто проигнорировано (хотя
> не совсем - улыбнулся).


Я же не о [255] говорю, а о твоих высказываниях.


> Доказать можно, но слишком долго - это раз.


Ну хотя бы основные мысли, ведь сам сказал -

> Поскольку профи в этом и так не нуждаются, а дилетанты все
> равно не поймут.


Не считаю себя дилетантом, однако мысль твоя мне непонятна.


> Каждый, кто хочет, может просто принять на веру...


С какой стати?


Восхищенный   (2008-04-26 20:40:00) [395]

> Экс-Оригинал   (26.04.08 20:20) [256]

Вряд ли я нуждался в комментариях и уж тем более в поощрениях.

Насчет [254] - доказывать я никому ничего не собираюсь. Ты же видишь - [255] было просто проигнорировано (хотя не совсем - улыбнулся).

Доказать можно, но слишком долго - это раз. И некому - это два. Поскольку профи в этом и так не нуждаются, а дилетанты все равно не поймут.

Каждый, кто хочет, может просто принять на веру - и его код станет лучше.


Экс-Оригинал   (2008-04-26 20:21:00) [396]


> Восхищенный   (25.04.08 18:30) [250]


PS.

А дискуссию провёл на ++ ;)


Экс-Оригинал   (2008-04-26 20:20:00) [397]


> Только так. И всякие иные рассуждения на эту тему есть попытки
> подвести базу под лень и дилетантизм.


Это твои личные мысли? Или мысли неких "Классиков"?
На чем основаны твои безапелляционные утверждения?

НАсчет Конопки и снобизма ты молодец, но надо не только чужие утверждения опровергать, но и свои доказывать.

Я поначалу тоже удумал в защите группы ресурсов некоторую неправильность.
Но доказать эту неправильность не смог для себя.

Если у тебя есть конкретные аргументы, а не просто догматические утверждения, то сюда их, пожалуйста.


Loginov Dmitry   (2008-04-26 12:40:00) [398]

> 2. Два присваивания подряд:
> A := nil;
> try
> A := TSomeClass.Create;
> ...
> это код дилетанта.



> 3. Код, в котором пытаются защитить сразу группу ресурсов
> одним try:
> try
> O1 := TSomeClass1.Create;
> O2 := TSomeClass2.Create;
> ...
> ON := TSomeClassN.Create;
> ...
> finally
> O1.Free; // Или FreeAndNil
> O2.Free;
> ...
> O3.Free;
> end;
> тоже код дилетанта.


Очень жаль, что Delphi и VCL разрабатывают одни дилетанты. Грустно даже... :(


Восхищенный   (2008-04-26 12:01:00) [399]

1. "Этого не случится никогда, потому что вероятность этого очень мала и потому что в моей практике такого еще ни разу не случалось" - очень распространенный (к сожалению) взгляд дилетантов.

2. Два присваивания подряд:
A := nil;
try
 A := TSomeClass.Create;
 ...
это код дилетанта.

3. Код, в котором пытаются защитить сразу группу ресурсов одним try:
try
 O1 := TSomeClass1.Create;
 O2 := TSomeClass2.Create;
 ...
 ON := TSomeClassN.Create;
 ...
finally
 O1.Free; // Или FreeAndNil
 O2.Free;
 ...
 O3.Free;
end;

тоже код дилетанта.

4. И только вот такой код:
захват_одного_ресурса;
try
 ...
finally
 освобождение_этого_ресурса
end;

это правильный, профессиональный код. И при грамотном структурировании программы глубина вложенности try в одном методе в 99.9% случаев не превышает трех (что вполне нормально и вполне читаемо). В оставшемся 0.1% сколько нужно вложенных try - столько и нужно честно писать, а не халтурить. Но сначала, как совершенно верно заметил Palladin, стоит задуматься - а все ли хорошо в консерватории?

Только так. И всякие иные рассуждения на эту тему есть попытки подвести базу под лень и дилетантизм.


Anatoly Podgoretsky   (2008-04-26 00:57:00) [400]

> Loginov Dmitry  (25.04.2008 20:45:12)  [252]

Программисты ИБМ тоже так говорили, когда придумывали формат даты для ДОС и БИОС


Страницы:   1 2 ... 17 18 19 20 21 22 23 ... 32 33

Наверх

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