Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

не назначена картинка в TImage [D7, XP]


creative ©   (2006-03-31 13:10:00) 

есть компонент TImage  в который при нажатии кнопки загружается картинка из файла.
Вопрос простой: как сформулировать условие "если картинка в TImage не была загружена"?


Creative   (2006-03-31 16:21:00) [1]

> Старик   (31.03.06 16:06) [14]
>мое дело тебе реешние дать, а остальное - твои
> проблемы.

пожалуйста, не сердитесь. мне просто было интересно, почему выдали такое решение.

и спасибо вам большое - проблема решилась.


Johnmen   (2006-03-31 16:11:00) [2]


> Старик   (31.03.06 16:06) [14]


Ты просто не умеешь их готовить (с) И не только их...


Старик   (2006-03-31 16:06:00) [3]

Да потому что Draw - это обертка над блиттингом. а я не люблю обертки и, по возможности, стараюсь избегать их использовать. впрочем, мое дело тебе реешние дать, а остальное - твои проблемы.
Те же TFileStream'ы, например - ну гемор гемором.
Лучше уж напрямую FileRead/FileWrite.
и потом - где я заставил тебя отрисовывать именно моменты? рисуй все, что нужно.


Creative   (2006-03-31 15:35:00) [4]

> Старик   (31.03.06 15:22) [12]

> Бери TBitmap, грузи в него, чего тбее надо, а в нужные моменты
> отрисовывай через блиттинг (BitBlt).

А почему не Canvas.Draw? мне его целиком надо рисовать, а не нужные моменты :-)


Старик   (2006-03-31 15:22:00) [5]

Ну и зачем тебе тогда TImage, раз ты не можешь его убить?
Бери TBitmap, грузи в него, чего тбее надо, а в нужные моменты отрисовывай через блиттинг (BitBlt). На форме просто делаешь if PtInRect(Rect, Cursor) таким образом ты отслеживаешь, в твоей ли картинке находится курсор.
А когда надо его грохнуть, делай FreeAndNil и проверяй if Assigned.
Чего гемор-то разводить с этими TImage и прочей фигней?!


Johnmen   (2006-03-31 14:52:00) [6]


> программа считает
...
Хотя должна было бы предупредить юзера


Ну программа-то твоя, а не наша. Откуда мы знаем, что она считает, а что нет? Что должна, а что не очень?

Так что описывай проблемы понятным языком, с приведением кода...


Creative   (2006-03-31 14:35:00) [7]

Народ, может это тупой вопрос, но помогите мне, пожалуйста.
Каким бы способом не очищался TImage - все равно при повторном запуске процедуры программа считает, что в Image1.Picture.Graphic и в Image1.Picture и в Image1.Picture.Bitmap что-то назначено и сидит молчит. Хотя должна было бы предупредить юзера, что он не выбрал картинку (эта реакция прописана).
Если приложение только что запущено - все получается правильно и без картинки объект не создается. Но вот со следующим объектом - уже проблема. Из чего делается вывод, что проблема таки кроется в очистке TIImage`а.
Я стараюсь объяснять понятнее, лучше уже не могу.


Creative   (2006-03-31 13:55:00) [8]

> Johnmen ©   (31.03.06 13:41) [6]
> Image1.Picture.Graphic.Empty

это условие. а как выглядит собственно строка, создающая это условие?


Johnmen   (2006-03-31 13:53:00) [9]

Image1.Picture.Assign(nil);


Creative   (2006-03-31 13:42:00) [10]

На всякий случай объясняю, что мне нужно: у меня есть форма, в которой создаются оъекты. Там есть несколько текстовых полей и компонент TImage для выбора картинки будущего объекта. Я хочу поставить запреты на недозаполнение формы. С текстовами полями все нормально, а вот как очистить TImage после создания предыдущего объекта - не понимаю. :-(


Johnmen   (2006-03-31 13:41:00) [11]

Уже сказали. Поправка
Image1.Picture.Graphic.Empty


Creative   (2006-03-31 13:36:00) [12]

Перефразирую вопрос: какая операция должня предшествовать такой проверке? Если я делаю TImage.Picture.Free или TImage.Picture.Bitmap.Free - программа вылетает. А если не делать ничего - программа конечо думает, что в TImage всегда что то назначено


Плохиш   (2006-03-31 13:34:00) [13]

Image1.Picture.Bitmap.Empty


Ega23   (2006-03-31 13:32:00) [14]

Тогда Image1.Picture.Bitmap


Creative   (2006-03-31 13:29:00) [15]

не подходит. отладчик пишет, что assigned


Ega23   (2006-03-31 13:21:00) [16]

if not Assigned(Image1.Picture)?


Наверх

Титульная страница Поиск, карта сайта Написать письмо