triwire, поражает отсутствие понимания собственных слов и незнание элементарных основ. Хорошенько подумайте, чем отличается А от B: procedure showImg(img) var pictureForm:TPictureForm; begin pictureForm:=TPictureForm.Create(img,dimensions); pictureForm.ShowModal; pictureForm.Free; end; от procedure showImg(img) var pictureForm:TPictureForm; begin pictureForm:=TPictureForm.Create(img,dimensions); try pictureForm.ShowModal; finally pictureForm.Free; end; end; Когда разбересь, надеюсь, больше не будете приставать с глупостями. coder, вам также советую немного подумать прежде чем бросаться на бруствер. Проанализируйте на досуге тот код что я приведу и то что сами же пишете, и тогда поймете, что прежде чем тыкать в мануалы и чужой код, нужно его сначала понять. log('Creating'); c:=TMyClass.Create(Self); try log('Show'); c.ShowModal; finally log('Finally:'); log('Free'); c.Free; log('Doing something else:'); SomethingElse(); end; try log('Creating'); c:=TMyClass.Create(Self); log('Show'); c.ShowModal; log('Free'); c.Free; finally log('Finally:'); log('Doing something else:'); SomethingElse(); end; Добавлено спустя 1 минуту 33 секунды: +100500, многократно Иногда умение читать от умения понимать, оказывается, сильно отличается...