image и DBImage
Есть несколько впросов:
1. Как убрать,загруженную динамически, картинку из image?
2. Как отобразить *.jpeg в DBImage, при условии, что он берёт данные из IBQuery? (добавление модуля jpeg не помогло)
Сзарание спасибо....)
Код:
Image1.Picture:=nil;
Со вторым вопросом врядли смогу помочь, так как никогда не работал с DBImage. Как мне кажется, нужно делать что-то такое: TJPEGImage.Assign, TJPEGImage.SaveToClipboardFormat, TDBImage.PasteFromClipboard, но я в этом не уверен.
Во первых Picture - это класс который пренадлежит Image и последний соответственно его должен удалять (ктати у тебя он и не удаляется.....).
А во вторых будет происходить утечка памяти и чем больше по объему загружена картинка, тем больше отверстие....
Не считая "мелочи", что при попытки открыть из файла выдаётся ошибка одресации....
Я согласен, что это не лучший вариант, но, увы, ничего другого я не придумал:(
В данном случае, значением является NULL, соответственно FPicture просто приводится в первоначальное состояние.
Цитата: el scorpio
Никаких утечек памяти не будет, потому что свойство Picture для записи использует метод класса, который вместо изменения адреса FPicture присваивает значение.
В данном случае, значением является NULL, соответственно FPicture просто приводится в первоначальное состояние.
В данном случае, значением является NULL, соответственно FPicture просто приводится в первоначальное состояние.
Может быть, НО тогда если после "Image1.Picture:=nil" попытаться "открыть из файла", то происходит ошибка адресации.... а это не есть гуд и очередной звонок...)
И по второму вопросу можеш что подсказать?
Значение указателя Image1->Picture не изменяется - изменяется сам объект. А чему в вашем случае равен адрес Image1.Picture до и после обнуления?
Походу просто дельфи глюканутый. Может быть просто глюки старых версий...
Цитата: el scorpio
Походу просто дельфи глюканутый.
С учётом того, что VCL Билдера написан на Дельфи - весьма сильный аргумент.
Цитата: el scorpio
Ничего не понимаю... У меня в Билдере 6.0 всё работает. При многократном повторении загрузки/обнуления картинки ни ошибок доступа, ни увеличения количества занимаемой памяти (утечки) не наблюдается.
Значение указателя Image1->Picture не изменяется - изменяется сам объект. А чему в вашем случае равен адрес Image1.Picture до и после обнуления?
Походу просто дельфи глюканутый. Может быть просто глюки старых версий...
Значение указателя Image1->Picture не изменяется - изменяется сам объект. А чему в вашем случае равен адрес Image1.Picture до и после обнуления?
Походу просто дельфи глюканутый. Может быть просто глюки старых версий...
Вопрос снят, я сглупил... сорри.)
А по второму не знает, ни кто ни чего????
Цитата: misha_turist
А по второму не знает, ни кто ни чего????
Сколько ни работал с VCL, так и не понял, как оно возможно. Где-то читал, что должно работать. На деле же всегда вручную приходилось.