![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
не назначена картинка в 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)?