![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Освобождение ресурса в finally
Arinyshka © (2008-04-23 12:17:00)
Страницы: < 1 2 ... 10 11 12 13 14 15 16 ... 32 33 >
Не подскажете еще один момент:
Есть процедура, выглядит примерно так
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 ситуация не менялась.
Anatoly Podgoretsky (2008-04-30 12:17:00) [241]> ANB (30.04.2008 10:19:32) [392]
> на чем написана винда
Думаю там страшная солянка, усугубленная долгой историей и гигантизмом.
Anatoly Podgoretsky (2008-04-30 12:16:00) [242]> Palladin (30.04.2008 09:31:31) [391]
Какой ты классик, ты Монстр
Восхищенный (2008-04-30 12:04:00) [243]> Игорь Шевченко © (30.04.08 11:53) [404]
> Каким боком ООП относится к памяти и скорости?
Таким, что реализация парадигмы ООП связана с накладными расходами (VMT и пр.) - а они приводят к дополнительным затратам памяти и снижению скорости.
Palladin (2008-04-30 12:03:00) [244]
> ANB (30.04.08 11:55) [405]
Извини, но я больше ничего нового для тебя сказать не могу... Останемся при своих мнениях...
> и начало использования рекомендаций Саши Просторова, против
> которых ты и выступал.
Я не выступал против вообще всех его рекомендаций, я выступал против конкретного массового обниления.
Palladin (2008-04-30 12:00:00) [245]
> Игорь Шевченко © (30.04.08 11:53) [404]
> Ну зачем ерунду-то говорить ? :) причем тут точка зрения
> программиста ?
> Как ты понимаешь, и DLL гораздо больше, и набор трех DLL
> не Windows вовсе.
ну тут ты прав конечно, это я слишком уж утрировал...
> Что, ООП - оно только для прикладных задач ? :)
> Я так считал что это парадигма программирования вообще..
И представляешь! :) Я тоже думаю что это парадигма! Но ты демагогией занимаешься. Я утверждаю "серьезному прикладному приложению без ООА/ООП не выжить", а ты мне вопросом "Что, ООП - оно только для прикладных задач ?"... ты либо не понял либо меня хочешь запутать...
> А эт ты зря не веришь. Никакого там ООП в ядре нет - чистый
> C
Ага, а дальше-то, дочитать фразу после Станиславского таки не судьба? :)
Игорь Шевченко (2008-04-30 12:00:00) [246]ANB (30.04.08 11:56) [406]
> А то, что в оракле написали с помощью явы - настолько неудобно,
> что этим никто не хочет пользоваться.
Эт ты неправду говоришь
ANB (2008-04-30 11:56:00) [247]
> Никакого там ООП в ядре нет - чистый C
А то, что в оракле написали с помощью явы - настолько неудобно, что этим никто не хочет пользоваться.
ANB (2008-04-30 11:55:00) [248]
> Форматы меняют, да еще так быстро, что надо было сделать
> вчера. Просто ты с этим не сталкивался.
Сталкивался. При этом нужно чтобы некоторое время поддерживались оба. "Нерезко" != "нечасто"
При этом частенько изменение формата приводить к полному изменению алгоритма обработки.
> Ага, только гроханье каскада - это побочный приятный эффект.
> Если ты внимательно прочитал [86] то наверное заметил бы,
> мою фразу о том, что если у нас столько много объектов,
> то следует задуматся, а нельзя ли сделать попроще. И вот
> если ты вдруг все еще не понял, то [192] это ответ на твой
> пример, и ответ на вопрос "а нельзя ли сделать попроще?".
> Всегда есть какой то процент, когда действительно нельзя,
> просто пример ты привел, в котором очень даже можно.
То что ты сделал, это не "попроще".
Попроще (и быстрее) делается так :
выкидывается нафиг весь код, в процедуре создается один объект, с помощью которого файл закидывается клобом в хранимку и уже на сервере парсится и обрабатывается.
Затем из аут параметров сохраняем логи.
А прикрутить ООП - это в данном случае еще больше все усложнить.
С XML же в случае больших объемов вообще придется ВСЕ переделывать и это нетривиально. Во всяком случае, приведенный пример разделения никак этому не поможет.
Ага, только гроханье каскада - это побочный приятный эффект.- и начало использования рекомендаций Саши Просторова, против которых ты и выступал.
Игорь Шевченко (2008-04-30 11:53:00) [249]Восхищенный (30.04.08 11:38) [403]
Я могу объяснить, почему я их такими считаю - потому чтоООП изначально декларировалось как панацея от сложности программ. Так вот, программы, которые я привел, они достаточно сложные, как по объему кода, так и по функциональности.
> во-вторых, подобного рода системы вряд ли вообще на ООП
> пишутся (в силу повышенных требований по памяти и скорости).
>
Каким боком ООП относится к памяти и скорости ?
Проводник виндовый написан без всякого ООП - какие тут нафиг повышенные требования ?
Palladin © (30.04.08 11:32) [401]
> Позволь мне конкретизировать, то что я имею в виду, под
> серьезным приложением. Я имею ввиду пользовательское приложение
> прикладного уровня. С тенденцией развития.
Что, ООП - оно только для прикладных задач ? :)
Я так считал что это парадигма программирования вообще...
> По поводу Windows. С точки зрения программиста из чего состоит
> ядро Windows? из набора трех dll
Ну зачем ерунду-то говорить ? :) причем тут точка зрения программиста ?
Как ты понимаешь, и DLL гораздо больше, и набор трех DLL не Windows вовсе.
> Oracle - не верю (С) Станиславский
А эт ты зря не веришь. Никакого там ООП в ядре нет - чистый C
Восхищенный (2008-04-30 11:38:00) [250]> Игорь Шевченко © (30.04.08 11:27) [400]
Это вопрос не ко мне (в силу [395]).
А вообще, системы, которые ты считаешь серьезными ("Windows, Unix, Linux, Oracle"), во-первых, зарождались еще до бурного развития ООП (и писались, соответственно, на ПП); во-вторых, подобного рода системы вряд ли вообще на ООП пишутся (в силу повышенных требований по памяти и скорости).
ООП - это, видимо, в большей степени инструмент для прикладной разработки. Ну, и для разработки инструментов для прикладной разработки (всяческие IDE и т.п.).
Palladin (2008-04-30 11:35:00) [251]
> Игорь Шевченко © (30.04.08 11:27) [400]
Все еще хочешь? :) Даже с учетом выделения конкретной категории приложений в [401] ? :)
Palladin (2008-04-30 11:32:00) [252]
> Игорь Шевченко © (30.04.08 10:20) [393]
Извиняюсь. Позволь мне конкретизировать, то что я имею в виду, под серьезным приложением. Я имею ввиду пользовательское приложение прикладного уровня. С тенденцией развития.
По поводу Windows. С точки зрения программиста из чего состоит ядро Windows? из набора трех dll, конечно там и не пахнет ООП, а зачем оно там? так же Windows состоит из мяса написанного самим же MS, вот тут то ООП и используется (али я не прав?). Windows это не какое то конкретное приложение - это целый набор из ядра и приложений-саттелитов.
Linux - ну тут мне сказать нечего...
Oracle - не верю (С) Станиславский, та же ситуация с Windows, в ядре, конечно и ни капли ООП, но, Игорь, там в инструменталке, Orcale Forms, основной используемый инструмент Jawa :) о чем ты...
В общем категорию приложений где ООП более чем уместно я определил.
Дальше к ANB:
> Изначально дискуссия шла : каскадный трай вс один трай с
> обнилением.
> Приведя пример разделения кода по методам ты, не собираясь
> этого делать, фактически грохнул каскад. И перешел в мой
> лагерь :) Но по прежнему пытаешься доказать, что каскад
> лучше.
Ага, только гроханье каскада - это побочный приятный эффект. Если ты внимательно прочитал [86] то наверное заметил бы, мою фразу о том, что если у нас столько много объектов, то следует задуматся, а нельзя ли сделать попроще. И вот если ты вдруг все еще не понял, то [192] это ответ на твой пример, и ответ на вопрос "а нельзя ли сделать попроще?". Всегда есть какой то процент, когда действительно нельзя, просто пример ты привел, в котором очень даже можно.
> Да она еще сложнее стала для понимания и сопровождения.
хм... ну что я могу сказать, это твое "ИМХО" вот только ты забыл это добавить. переубеждать тебя не буду. Форматы меняют, да еще так быстро, что надо было сделать вчера. Просто ты с этим не сталкивался.
> Классический пример, когда ООП только затрудняет понимание
> и сопровождение.
Опять "классический"... а "ИМХО" опять ты случайно не забыл добавить?
> ANB (30.04.08 11:01) [396]
> ООП по делу и без дела
где? где у меня это утверждение? где я всех склоняю к ООП? ты прочитал, что я Игорю ответил? неа... ну и ладно...
Игорь Шевченко (2008-04-30 11:27:00) [253]Восхищенный (30.04.08 11:21) [399]
Мы немножко в сторону отошли. Мне все-таки хотелось бы увидеть пример серьезной системы написанной с использованием ООП.
Ну кроме Delphi, разумеется :)
Восхищенный (2008-04-30 11:21:00) [254]> Игорь Шевченко © (30.04.08 11:07) [398]
ЯдроWindows - это не окна. Но и ядро - это еще не вся Windows. А всяWindows - это и окна тоже. Нужен же какой-то UI.
Даже консольные приложения - и те в окне работают. Даже у сервисов предусмотрено взаимодействие с рабочим столом.
Игорь Шевченко (2008-04-30 11:07:00) [255]Восхищенный (30.04.08 11:03) [397]
Windows это не окна. Я скажу более - и во внутренностях Windows есть "зачатки ООП-подхода" - есть диспетчер объектов, есть базовые свойства типа объекта и т.д.
Но никакой реализацией с использованием ООП в Windows (а это более чем большая система) и не пахнет - ни наследования, ни полиморфизма, одна только инкапсуляция и та сделана искусственно.
Восхищенный (2008-04-30 11:03:00) [256]Кстати, некие зачатки ООП-подхода прослеживаются и в Windows: есть классы окон, экземпляры этих классов, свойства окон... Реализация у них, конечно, не объектная, но идеологически довольно похоже.
ANB (2008-04-30 11:01:00) [257]
> Странный спор: ООП vs ПП (процедурное программирование).
А он и не такой. Он такой :
ООП по делу и без дела вс ПП, когда оно удобнее. :)
Восхищенный (2008-04-30 10:56:00) [258]Странный спор: ООП vs ПП (процедурное программирование).
Очевидно же, что у каждого подхода есть свои сильные и слабые стороны. Значит, вопрос надо ставить так: ООП + ПП. А не "vs".
ANB (2008-04-30 10:20:00) [259]
> внедренных объектов
внедренных проектов
Игорь Шевченко (2008-04-30 10:20:00) [260]Palladin © (30.04.08 03:50) [390]
> в ответ на мои слова, что ни один серьезный продукт без
> ооа не реализовать.
А не трудно привести примеры серьезных продуктов, реализованных с помощью ООП ?
Про серьезные продукты, реализованные без ООП я могу говорить довольно долго - это Windows, Unix, Linux, Oracle. Продукты более чем серьезные, строк кода там за миллионы.