Народ помогите!!!!!!Очень нада помощь! Такая проблема возникла. На форме размещен TImage и TButton. В ресурсах приложения есть файл "fail.png". При нажатии на кнопку данный файл загружаеться в TImage. Фрагмент кода: Code: TResourceStream*res=new TResourceStream(0,"PORTOPENSUCCES","ICONS"); Form1->Image2->Picture->Bitmap->LoadFromStream(res); delete res; Вроде все норм,но если нажать еще раз кнопку,то выскакует исключение. В чем может быть проблема?
"исключение" это гораздо лучшее описание ошибки, нежели "не работает", но и оно не спасет нас от необходимости поиска телепата. Или подробности в какой строке, какое исключение, что пишет борланд(или что там) - секретная инфа?
Form1->Image2->Picture->Bitmap->LoadFromStream(res); Эту строку разбить на промежуточные. типа Image img = Form1->Image2; и так далее. Ну а дальше смотреть на какой строке исключение. Какой то из указателей крив.
Ну ты блин гений.Я и так знаю в каком месте возникает ексепшн. Пожалуйста народ,если вы не знаете в чем трабла,то не пишите глупые посты!
В приведенном фрагменте кода в каждой строке по одному оператору Разбивать во-первых не поможет, во-вторых можно проще. Надо ставить бряк на эту строку, и смотреть в окно дебаггера Local Variables на что указывают все указатели, и в интерактивном режиме пробовать в дебаггере обращаться по всем указателям и объектам, тогда отладчик выдаст эксепшен на мусоре. А чем не катит: Image1.Picture.Bitmap.LoadFromResourceName(); В общем, у меня на кнопке всего одна строчка и нормально отрабатывает сколько угодно раз: Image1.Picture.Bitmap.LoadFromResourceName(0, 'Bitmap_1'); где Bitmap_1 - название ресурса
GhostOnline привет вечная путаница под операторами я имел ввиду операции выполнящиеся на операндами а их бывает очень много в одной строке отлаживать такое если что то не работает это ахтунг в отладчике на уровне исходного кода за один шаг меняется сразу пачка переменных когда нужно все по шагам ну или вариант переключится в режим дизассемблера или не писать по 10 операций в одной строке думать как отлаживать будеш
открою маленькую тайну - в норм фирмах запрещается делать вызовы вложенностью больше двух-трёх, как раз именно для избегания таких багов.
сколько раз попадался на таком пишеш объемный кусок кода причем на каждой строке код довольно вычурный который невозможно отладить нормально потом билдиш запускаеш не работает тут то и начинаеш пошагово смотреть а так как в каждой строке делается масса вещей такой код невозможно отладить потом береш и переписываеш код нормально чтоб в каждой строке делалось минимум и снова отлаживаеш а потом позже уже стал прежде чем написать в одной строке что то мудреное представлять себе отладку этого чуда и практически сейчас никогда не стараюсь сделать побольше без перевода каретки на новую строку так как код с первого раза редко работает а отладить такое невозможно нормально