Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

image и DBImage

286
15 августа 2007 года
misha_turist
572 / / 28.11.2005
Доброго времени суток!

Есть несколько впросов:
1. Как убрать,загруженную динамически, картинку из image?
2. Как отобразить *.jpeg в DBImage, при условии, что он берёт данные из IBQuery? (добавление модуля jpeg не помогло)

Сзарание спасибо....)
16K
15 августа 2007 года
Zbyszek
118 / / 08.08.2007
Если я правильно понял первый вопрос, то
 
Код:
Image1.Picture:=nil;

Со вторым вопросом врядли смогу помочь, так как никогда не работал с DBImage. Как мне кажется, нужно делать что-то такое: TJPEGImage.Assign, TJPEGImage.SaveToClipboardFormat, TDBImage.PasteFromClipboard, но я в этом не уверен.
286
15 августа 2007 года
misha_turist
572 / / 28.11.2005
Это плохой вариант....
Во первых Picture - это класс который пренадлежит Image и последний соответственно его должен удалять (ктати у тебя он и не удаляется.....).
А во вторых будет происходить утечка памяти и чем больше по объему загружена картинка, тем больше отверстие....

Не считая "мелочи", что при попытки открыть из файла выдаётся ошибка одресации....
16K
15 августа 2007 года
Zbyszek
118 / / 08.08.2007
Я согласен, что это не лучший вариант, но, увы, ничего другого я не придумал:(
309
16 августа 2007 года
el scorpio
1.1K / / 19.09.2006
Никаких утечек памяти не будет, потому что свойство Picture для записи использует метод класса, который вместо изменения адреса FPicture присваивает значение.
В данном случае, значением является NULL, соответственно FPicture просто приводится в первоначальное состояние.
286
16 августа 2007 года
misha_turist
572 / / 28.11.2005
Цитата: el scorpio
Никаких утечек памяти не будет, потому что свойство Picture для записи использует метод класса, который вместо изменения адреса FPicture присваивает значение.
В данном случае, значением является NULL, соответственно FPicture просто приводится в первоначальное состояние.




Может быть, НО тогда если после "Image1.Picture:=nil" попытаться "открыть из файла", то происходит ошибка адресации.... а это не есть гуд и очередной звонок...)


И по второму вопросу можеш что подсказать?

309
17 августа 2007 года
el scorpio
1.1K / / 19.09.2006
Ничего не понимаю... У меня в Билдере 6.0 всё работает. При многократном повторении загрузки/обнуления картинки ни ошибок доступа, ни увеличения количества занимаемой памяти (утечки) не наблюдается.
Значение указателя Image1->Picture не изменяется - изменяется сам объект. А чему в вашем случае равен адрес Image1.Picture до и после обнуления?

Походу просто дельфи глюканутый. Может быть просто глюки старых версий...
10
17 августа 2007 года
Freeman
3.2K / / 06.03.2004
Цитата: el scorpio
Походу просто дельфи глюканутый.


С учётом того, что VCL Билдера написан на Дельфи - весьма сильный аргумент.

286
17 августа 2007 года
misha_turist
572 / / 28.11.2005
Цитата: el scorpio
Ничего не понимаю... У меня в Билдере 6.0 всё работает. При многократном повторении загрузки/обнуления картинки ни ошибок доступа, ни увеличения количества занимаемой памяти (утечки) не наблюдается.
Значение указателя Image1->Picture не изменяется - изменяется сам объект. А чему в вашем случае равен адрес Image1.Picture до и после обнуления?

Походу просто дельфи глюканутый. Может быть просто глюки старых версий...



Вопрос снят, я сглупил... сорри.)


А по второму не знает, ни кто ни чего????

10
17 августа 2007 года
Freeman
3.2K / / 06.03.2004
Цитата: misha_turist
А по второму не знает, ни кто ни чего????


Сколько ни работал с VCL, так и не понял, как оно возможно. Где-то читал, что должно работать. На деле же всегда вручную приходилось.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог