Прозрачная форма, а на ней картинка

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем DolWeb, 21 мар 2008.

Статус темы:
Закрыта.
  1. DolWeb

    DolWeb Гость

    Репутация:
    0
    Как сделать, что-бы картинка с прозрачными местами отображалась прозрачно (т.е Как включит прозрачность формы и картинки,у меня получилось в аттаче)
    Прозрачная форма, а на ней картинка
     
  2. DolWeb

    DolWeb Гость

    Репутация:
    0
    Уже 9> просмотров и никто не поможет?
     
  3. Pasha

    Pasha Гость

    Репутация:
    0
    DolWeb
    На приаттаченной картинке совершенно непонятно где фон, где форма и где картинка.
     
  4. zubr

    zubr Гость

    Репутация:
    0
    Как я понимаю там белый цвет - это фон.
    Не берусь утверждать, но по моему с 6 билдера у формы есть свойства AlphaBlend, AlphaBlendValue, Transparent, TransparentColor. Думаю, остальное понятно, в крайнем случае по этим свойствам есть Help. Данный вариант решения самый простой, но есть и другие варианты (через регионы).
     
  5. DolWeb

    DolWeb Гость

    Репутация:
    0
    Это я пробовал
    На приаттаченной картинке белое - это прозрачная область (должна быть), фон это цветное нечто (обычный виндус скрин)
    Всю форму картинка загораживает, на форме ставил Visible false Enabled false

    картинку вставил через TImage
     
  6. zubr

    zubr Гость

    Репутация:
    0
    Должно работать.
    Transparent=TRUE;
    TransparentColor=clWhite;

    Проверь свою картинку в графическом редакторе. Важно, чтобы белый цвет был действительно белым - RGB(255, 255, 255)
     
  7. DolWeb

    DolWeb Гость

    Репутация:
    0
    Спасибо!

    У меня еще вопрос, как сделать картинку с полупрозрачными областями, например, что бы была видна тень
     
  8. zubr

    zubr Гость

    Репутация:
    0
    Попробуй просто сделать с определенной прозрачностью. Что типа этого (код на Delphi, думаю сам переведешь):
    Код (Text):
    procedure TForm1.Button1Click(Sender: TObject);
    var
    bmp:TBitmap;
    bf:BLENDFUNCTION;
    begin
    bmp:=TBitmap.Create;
    try
    bmp.LoadFromFile('d:\1.bmp');

    bf.BlendOp:=AC_SRC_OVER;
    bf.BlendFlags:=0;
    bf.SourceConstantAlpha:=100;//величина прозрачности (0-255)
    bf.AlphaFormat:=0;
    Windows.AlphaBlend(Image1.Canvas.Handle, 0, 0, Image1.ClientWidth, Image1.ClientHeight,
    bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, bf);
    finally
    bmp.Free;
    end;
    end;
     
  9. DolWeb

    DolWeb Гость

    Репутация:
    0
    Кодом и я могу написать, исходник проги есть, а настройками, как - нибудь нельзя?
     
  10. zubr

    zubr Гость

    Репутация:
    0
    Какими настройками? Настройками чего?
     
  11. DolWeb

    DolWeb Гость

    Репутация:
    0
    Ну слева есть панелька
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей