Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод текста на фоне картинки, хочу картинку за текстом, а не белый фон 
:(
    Опции темы
Ellochka
Дата 10.11.2007, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



Ребята! Подскажите, пожалуйста. Мне надо вывести многострочный текст на экран, на фоне картинки. хочу например выводить через ListBox, потому что у этого компонента есть свойство Canvas и возможна работа со строками - Items. но когда выводятся строки за ними - БЕЛЫЙ фон, а я хочу КАРТИНКУ!! 
ListBox.Canvas.Brush.Style := bsClear - не помогает (как для TextOut'a), а никаких свойств transparent  и подобных я не нашла...Что делать??
PM   Вверх
MetalFan
Дата 10.11.2007, 23:55 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 5
Всего: 128



Код

  SetBkMode( Canvas.Handle, TRANSPARENT );


Добавлено через 1 минуту и 33 секунды
Цитата(Ellochka @  10.11.2007,  23:01 Найти цитируемый пост)
хочу например выводить через ListBox, потому что у этого компонента есть свойство Canvas и возможна работа со строками - Items

кстати бредовая имхо идея


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
VICTAR
Дата 11.11.2007, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 2
Всего: 80



Еще вариант
Код

Canvas.Brush.Style := bsClear;

PM MAIL   Вверх
Ellochka
Дата 12.11.2007, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



к сожалению   SetBkMode(Canvas.Handle,TRANSPARENT) не решил мою проблему, также как и  Canvas.Brush.Style := bsClear, что я до этого использовала.

Эти операции делают нужный фон только если выводить через TextOut.

Дело в том, что выводить МНОГОстрочный текст через TextOut - это бред%) в моем случае жутко неудобно, поэтому я ищу компонент( или метод ListBox'a  уж не знаю), который содержал бы канву, куда бы я загружала фон и  методы работы со строками. что-то вроде гибрида TIMAGE + TMEMO, только чтобы 
ПРИ ВЫВОДЕ ТЕКСТА  ЭТОТ САМЫЙ ТЕКСТ НЕ ПЕРЕКРЫВАЛ КАРТИНКУ КАНВЫ. вот... уже сколько времени ломаю голову((( эх...
PM   Вверх
Snowy
Дата 12.11.2007, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Пожалуйста, сделай программу-пример, где показано что именно и как не работает.
Приаттач исходник тут. Посмотрим, пощупаем...
PM MAIL   Вверх
Alexeis
Дата 12.11.2007, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(Ellochka @  12.11.2007,  12:34 Найти цитируемый пост)
Дело в том, что выводить МНОГОстрочный текст через TextOut - это бред

  Многострочный удобнее при помощи DrawText.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
MetalFan
Дата 12.11.2007, 13:13 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 5
Всего: 128



Код

procedure TForm1.FormPaint(Sender: TObject);
const
  lC_Str = 'МНОГОСТРОЧНАЯ'#13'СТРОКА';
var
  lBMP: TBitmap;
  lRect: TRect;
begin
  lBMP := TBitmap.Create;
  try
    lBMP.LoadFromFile('SomeImg.bmp');
    Canvas.Draw(1,1, lBMP);
    lRect := Self.ClientRect;
    OffsetRect( lRect, 10,10 );
    Canvas.Font.Color := clWhite;
    SetBkMode( Canvas.Handle, TRANSPARENT );
    DrawText( Canvas.Handle, lC_Str , Length(lC_Str), lRect, 0 );
  finally
    lBMP.Free;
  end;
  
end;


Это сообщение отредактировал(а) MetalFan - 12.11.2007, 13:14


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Ellochka
Дата 18.11.2007, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



Дорогой MetalFan!!!! Спасибо тебе большое))))))))))))) smile 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0772 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.