Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Прозрачная форма


Автор: Mixasik 4.10.2006, 19:56
 smile 
Подскажите можно ли в дельфи сделать так, чтобы форма была прозрачной, а шрифт на ней был видим?
Или желательно можно ли сделать так чтобы такие компоненты как TEdit  TMemo были прозрачными, то есть под ни[ можно было подложить картинку и текст отображался бы как бы на картинки, а белого фона не было? 

Автор: Alexeis 4.10.2006, 20:22
http://forum.vingrad.ru/index.php?showtopic=54390

Автор: Zero 4.10.2006, 20:42
Ну вот это напиши в обработчиках создания и прорисовки формы, а компоненты натыканые на форме будут видны обычным образом:
Код

procedure TForm1.FormPaint(Sender: TObject);
var
  bitmap:tbitmap;
begin
  BitBlt(Canvas.Handle, 0, 0, ClientWidth, ClientHeight,
        bb.Canvas.Handle, Left, Top, SRCCOPY);
  bitmap:=tbitmap.Create;
  bitmap.transparent:=true;
  bitmap.transparentcolor:=clwhite;
  canvas.Draw(0,0,bitmap);
  bitmap.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DoubleBuffered := True;
  bb := Tbitmap.Create; // bb - глобальная переменная типа TBitmap
  bb.Width := Screen.Width;
  bb.height := Screen.Height;
  BitBlt (bb.Canvas.Handle, 0, 0, bb.Width, bb.Height,
      getdc(0), 0, 0, SRCCOPY); // копируем с экрана
end;

А если всё прозрачным нужно, то в свойствах формы, есть AlphaBlend которое нужно поставить в true и значение прозрачности свойство AlphaBlendValue в интервале от 0 до 255 (255 - непрозрачная)

Автор: Mixasik 5.10.2006, 17:28
Спасибо за помощь попробую сделать, иначе никак не получается сделать красивый дизайн...

Автор: Yanis 6.10.2006, 09:24
Код
object Form1: TForm1
  Left = 385
  Top = 147
  Width = 513
  Height = 389
  Caption = 'Form1'
  Color = clBtnFace
  TransparentColor = True
  TransparentColorValue = clRed
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Panel1: TPanel
    Left = 0
    Top = 0
    Width = 505
    Height = 355
    Align = alClient
    Caption = 'Привет!'
    Color = clRed
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -32
    Font.Name = 'MS Sans Serif'
    Font.Style = [fsBold]
    ParentFont = False
    TabOrder = 0
  end
end

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)