Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.07.03;
Скачать: [xml.tar.bz2];

Вниз

Текст на TImage   Найти похожие ветки 

 
Fr   (2011-03-25 16:46) [0]

На форме лежит TImage. В него загружен бмп. Align установлен в alClient. Stretch = true.
Задача: в координаты 10,10 TImage вывести текст с Size=8. Размер выведенного текста не должен изменяться при ресайзе формы.
Пытаюсь сделать так:

procedure TForm1.FormResize(Sender: TObject);
begin
        with Image1.Canvas do begin
           Font.Name:="Arial";
           Font.Height:=10;
           //Font.Style:=[fsBold];
           Font.Color:=clYellow;
           OldBkMode := SetBkMode(Handle, TRANSPARENT);
           TextOut( 10, 10, "String");
           SetBkMode(Handle, OldBkMode);
         end;
end;

Но при ресайзе формы размер выводимого шрифта так же меняется.
Как добиться того, чтобы при ресайзе формы шрифт всегда выводился одним размером?


 
clickmaker ©   (2011-03-25 16:53) [1]

все, что рисуется на Image1.Canvas, становится частью Image и ресайзится вместе с ним, слоев там нет.
Рисовать текст нужно отдельно


 
Игорь Шевченко ©   (2011-03-25 16:54) [2]


> Как добиться того, чтобы при ресайзе формы шрифт всегда
> выводился одним размером?


1. Рисовать на событии OnPaint
2. На TPaintBox


 
Fr   (2011-03-25 17:10) [3]


> clickmaker ©   (25.03.11 16:53) [1]

Так onResize обрабатывается уже после изменения размера формы? Т.е., когда событие наступает, форма уже изменена, соответственно и Image1 изменил свои размеры. И вот в этот момент я пытаюсь вывести текст заданного размера....


 
Leon-Z ©   (2011-03-25 21:50) [4]


> Fr   (25.03.11 17:10) [3]
> Так onResize обрабатывается уже после изменения размера
> формы?

Событие OnResize наступает до изменения размера окна но в то время когда уже заданы новые размеры.
Короче Resize меняет размеры (этого мы не видим).
Потом Paint перерисовывает с новыми размерами (а это видим).


 
Amoeba_   (2011-03-25 21:52) [5]


> r   (25.03.11 17:10) [3]
>
>
> > clickmaker ©   (25.03.11 16:53) [1]
>
> Так onResize обрабатывается уже после изменения размера
> формы? Т.е., когда событие наступает, форма уже изменена,
>  соответственно и Image1 изменил свои размеры. И вот в этот
> момент я пытаюсь вывести текст заданного размера....
>

Нефиг рисовать на TImage, он не для этого предназначен, ССЗБ. Тебе уже ИШ подсказал, как сделать правильно.
Для непонятливого поясню:
Загружаешь (из файла или из ресурса) картинку в TBitmap. Затем в событии OnPaint компонента TPainBox отрисовываешь на его Canvas сперва этот Bitmap, а затем выводишь текст. А у формы св-во DoubleBuffered установи (в Runtime) в True.


 
Fr   (2011-03-26 10:40) [6]


> Тебе уже ИШ подсказал, как сделать правильно.

Это я уже сделал сразу после его совета. Спасибо. Хотелось разобраться - почему не работает первый вариант.
Поэтому спасибо и Leon-Z ©   (25.03.11 21:50) [4] за пояснение.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.07.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
1-1258894985
GreyWolf
2009-11-22 16:03
2011.07.03
Подскажите где взять Static Separator для Dialog Box


15-1300257468
Артём
2011-03-16 09:37
2011.07.03
Cистема на работе барохлит?


15-1300293054
boriskb
2011-03-16 19:30
2011.07.03
Браузеры + Adobe Flash Player


15-1300564971
IPranker
2011-03-19 23:02
2011.07.03
Куда попадают картинки при переносе с Мазилы?


15-1300208090
И. П. Павел
2011-03-15 19:54
2011.07.03
Прогноз погоды на JAVA





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский