Delphi World - Окно по рисунку
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Окно по рисунку


Разбойному нападению сотрудников фирмы "Майкрософт" подверглась штаб-квартира компании "Sun". Хулиганы вышибли в здании все двери и взамен установили окна.


TStretchHandle = class(TCustomControl)
  private
    procedure WMEraseBkgnd(var message: TWMEraseBkgnd); message WM_ERASEBKGND;
    procedure WMGetDLGCode(var message: TMessage); message WM_GETDLGCODE;
  protected
    procedure Paint; override;
    property Canvas;
  public
    procedure CreateParams(var Params: TCreateParams); override;
end;

procedure TStretchHandle.CreateParams(var Params: TCreateParams);
begin
  { set default Params values }
  inherited CreateParams(Params);
  { then add transparency }
  Params.ExStyle := Params.ExStyle + WS_EX_TRANSPARENT;
end;

procedure TStretchHandle.WMGetDLGCode(var message: TMessage);
begin
  { completely fake erase, don't call inherited, don't collect $200 }
  message.Result := DLGC_WANTARROWS;
end;

procedure TStretchHandle.WMEraseBkgnd(var message: TWMEraseBkgnd);
begin
  { completely fake erase, don't call inherited, don't collect $200 }
  message.Result := 1;
end;

procedure TStretchHandle.Paint;
begin
  inherited Paint;
  with Canvas do
  begin
    // рисуете что нужно -
    // где не рисовали, там будет "прозрачно"
  end;
end;

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования