• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Как можно сделать Panel прозрачным ?

  • Автор темы slavon-x86
  • Дата начала
S

slavon-x86

Как можно сделать Panel прозрачным ?
 
S

slavon-x86

Делайте на здоровье... :unsure:
TPanel прозрачен по умолчанию вообщето...
ну... в самом тяжелом случае свойство ParentBackground := True
А в чем проблема то?
Если под панель поместить картинку, то картинки не будет видно.
Панель не прозрачна.
 
S

sinkopa

Если под панель поместить картинку, то картинки не будет видно.
Панель не прозрачна.
Хм... ;) странное желание... А Bevel не рулит разве?
Ну да ладно... В первом приближении вот:
Код:
unit uMainForm;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, jpeg, StdCtrls;

// делаем небольшой хак стандартной панели
type
TPanel = class(ExtCtrls.TPanel)
protected
procedure Paint; override;
procedure CreateParams(var Params: TCreateParams); override;
end;

type
TForm1 = class(TForm)
img1: TImage;
pnl1: TPanel;
btn1: TButton;
lbl1: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TPanel.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
if not (csDesigning in ComponentState) then
Params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT;
end;

procedure TPanel.Paint;
var
XBitMap: TBitMap;
XOldDC: HDC;
XRect: TRect;
begin
if (csDesigning in ComponentState) then
inherited Paint
else
begin
XRect := ClientRect;
XOldDC := Canvas.Handle;
XBitMap := TBitMap.Create;
try
XBitMap.Height := Height;
XBitMap.Width := Width;
Canvas.Handle := XBitMap.Canvas.Handle;
inherited Paint;
RedrawWindow(Parent.Handle, @XRect, 0, RDW_ERASE or
RDW_INVALIDATE or RDW_NOCHILDREN or RDW_UPDATENOW);
finally
Canvas.Handle := XOldDC;
Canvas.BrushCopy(XRect, XBitMap, XRect, Color);
XBitMap.Free;
end;
end;
end;

end.
Вот... типа так:
form.jpg

Это Вы хотели получить?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!