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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Половина белым, половина черным 
:(
    Опции темы
Понедельник
Дата 12.1.2004, 10:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Часть канваса должна быть черной, другая - белой, а текст поверху. Естественно, чтобы текст нормально читался, та часть, что на черном фоне должна быть белой, и наоборот (примерно, как на индикаторе с процентами).
Как это можно изобразить?
  Вверх
stab
Дата 12.1.2004, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



примерно так:
Код

procedure TForm1.FormPaint(Sender: TObject);
begin
 Color := clWhite;
 Canvas.TextOut(100, 100, 'Some text');
 Canvas.Pen.Mode := pmNot;
 Canvas.Rectangle(116, 100, 150, 115);
end;



--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Kesh
Дата 12.1.2004, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



Цитата(cully @ 12.1.2004, 08:45)
примерно так:
Код

procedure TForm1.FormPaint(Sender: TObject);
begin
 Color := clWhite;
 Canvas.TextOut(100, 100, 'Some text');
 Canvas.Pen.Mode := pmNot;
 Canvas.Rectangle(116, 100, 150, 115);
end;

или так:
Код

procedure TForm1.FormPaint(Sender: TObject);
begin
 Color := clWhite;
 Canvas.Rectangle(116, 100, 150, 115);
 Canvas.Pen.Mode := pmXOR;
 Canvas.TextOut(100, 100, 'Some text');
end;



--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Понедельник
Дата 15.1.2004, 11:09 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А если то же самое, но вместо черного чтоб был синий цвет, например.
  Вверх
Kesh
Дата 15.1.2004, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



Вывод XOR-ом производится по методу булевого побитового отрицания... т.е. Если у тебя Поверх белого фона (#FFFFFF) выводится желтый текст (#FFFF00) то в итоге получится синий цвет (#0000FF) на все том же белом фоне.

Операция побитового сксоривания работает c каждым битом цвета так
Код
a | b | xor
-----------
0 | 0 |  0
0 | 1 |  1
1 | 0 |  1
1 | 1 |  0



--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

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

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

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

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


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

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


 




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


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

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