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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прозрачная Panel ? 
:(
    Опции темы
VZ
  Дата 15.4.2005, 08:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Господа, можно ли сделать Panel прозрачной?
  Вверх
Snowy
Дата 15.4.2005, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Насколько прозрачной? До формы или насквозь?
Сквозь нее можно тыкать мышей или она должна быть, как стекло - тыкать в нее.
PM MAIL   Вверх
VZ
Дата 16.4.2005, 14:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как стекло, чтобы то, что было на ней нарисовано накладывалось на то, что под ней. smile
  Вверх
Snowy
Дата 18.4.2005, 06:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Проще всего найти какой-нить компонент с таким эффектом.
Обычно у таких в названии есть слово Glass - по нему и ищи.
Самому будет сложнее. Придется брать изображение того, что под панелькой, накладывать на панель и складывать по желаемому алгоритму оба изображения.
Хорошо, если изображение под панелькой не будет меняться, иначе придется постоянно перерисовывать.
PM MAIL   Вверх
drinkOut
Дата 20.4.2005, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 10.2.2005
Где: мой стакан?

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



Привожу примерчик для работы с (полу)прозрачностью:
Код

type

  TRGB = record
    B, G, R: Byte;
  end;
  PRGB = ^TRGB;

...

procedure TFWHintWindow.Paint;

  function BLimit(B: Integer): Byte;
  begin
    if B < 0 then
      Result := 0
    else
      if B > 255 then
        Result := 255
      else
        Result := B;
  end;

var
  TmpRect: TRect;
  I, Q: Integer;
  SRC, DEST: PRGB;
  ...
begin

...

  if FHint.FTransparent then
  begin
    for I:= 0 to Height - 1 do
    begin
      DEST := FBlend.ScanLine[I];
      SRC := FSRC.ScanLine[I];
      for Q:= 0 to Width - 1 do
      begin
        SRC^.R := BLimit(MulDiv(SRC^.R,  FHint.FTransparentValue, 255)
          + MulDiv(DEST^.R, 255 - FHint.FTransparentValue, 255));
        SRC^.G := BLimit(MulDiv(SRC^.G, FHint.FTransparentValue, 255)
          + MulDiv(DEST^.G, 255 - FHint.FTransparentValue, 255));
        SRC^.B := BLimit(MulDiv(SRC^.B, FHint.FTransparentValue, 255)
          + MulDiv(DEST^.B, 255 - FHint.FTransparentValue, 255));
        Inc(DEST);
        Inc(SRC);
      end;
    end;
  end;
  BitBlt(Canvas.Handle, 0, 0, Width, Height, FSRC.Canvas.Handle, 0, 0, SRCCOPY);
end;

Переменные FBlend и FSRC имеют тип TBitmap.
FBlend содержит изображение находящееся под контролом.
FSRC - само изображение контрола (отрисовывается динамически).
Результат работы - слияние этих двух картинок в процентном соотношении указанном в FHint.FTransparentValue
Где 0 - означает что контрола вообще не будет видно, а 255 - изображение находящееся под контролом не будет видно. Все остальные значения от 0 до 255 - процент смешения изображений.

Вот как-то так! smile
--------------------
Жизнь жестока - когда у меня на руках все карты, она начинает играть в шахматы...www.certifications.ru - проверь себя
PM MAIL ICQ   Вверх
Rouse_
Дата 22.4.2005, 08:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











drinkOut, подозрительно знакомый код ;)
  Вверх
drinkOut
Дата 22.4.2005, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 10.2.2005
Где: мой стакан?

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



Я учился по исходникам Rouse_! smile smile smile
--------------------
Жизнь жестока - когда у меня на руках все карты, она начинает играть в шахматы...www.certifications.ru - проверь себя
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

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

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

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

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


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

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


 




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


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

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