| 
 Помещение VCL компонентов в область заголовка
 
   Здесь есть хитрость: Нужно разместить все необходимые элементы управления в отдельной форме, 
которая должна отслеживать перемещение и изменение размеров основной формы. 
Данная форма будет всегда находится над областью заголовка основной формы.
 Нижеприведенный проект включает в себя 2 формы и выпадающий список 
(combobox). После запуска программы список появляется в области заголовка 
главной формы. Два ключевых вопроса: 1) организация перехвата сообщения WM_MOVE 
главной формы; и 2) возвращение фокуса в главную форму после того, как 
пользователь нажмет на каком-либо элементе управления, способным иметь фокус 
(например, TComboBox, TButton и др.)
 Я использую 32-битную Delphi 2.0 под Win95, тем не менее данный код должен 
работать с любой версией Delphi.
 Вот исходный код главной формы: | 
 
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    procedure FormResize(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormHide(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure WMMove(var Msg: TWMMove); message WM_MOVE;
  end;
var
  Form1: TForm1;
implementation
uses Unit2;
{$R *.DFM}
procedure TForm1.FormResize(Sender: TObject);
begin
  with Form2 do
  begin
    {Заменим мои магические числа реальной информацией SystemMetrics}
    Width := Form1.Width - 120;
    Top := Form1.Top + GetSystemMetrics(SM_CYFRAME);
    Left := ((Form1.Left + Form1.Width) - Width) - 60;
  end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
  Form2.Show;
end;
procedure TForm1.FormHide(Sender: TObject);
begin
  Form2.Hide;
end;
procedure TForm1.WMMove(var Msg: TWMMove);
begin
  inherited;
  if (Visible) then
    FormResize(Self);
end;
end.
 | 
 
 Вот исходный код для псевдо-заголовка. Данная форма может содержать любые 
элементы управления VCL, которые вы хотите установить в области заголовка 
главной формы. По существу, это - независимый диалог со следующими 
свойствами: | 
 
Caption='' {NULL строка}
Height={высота области заголовка}
Width={высота всех компонентов на форме}
BorderIcons=[] {пусто}
BorderStyle=bsNone
FormStyle=fsStayOnTop
 | 
 
 И, наконец, исходный код для Form2: | 
 
unit Unit2;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm2 = class(TForm)
    ComboBox1: TComboBox;
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form2: TForm2;
implementation
uses Unit1;
{$R *.DFM}
procedure TForm2.FormCreate(Sender: TObject);
begin
  Height := ComboBox1.Height - 1;
  Width := ComboBox1.Width - 1;
end;
procedure TForm2.ComboBox1Change(Sender: TObject);
begin
  Form1.SetFocus;
end;
procedure TForm2.FormResize(Sender: TObject);
begin
  ComboBox1.Width := Width;
end;
end.
 | 
 
 Файл проекта (.DPR) довольно простой: | 
 
program Project1;
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};
{$R *.RES}
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
 | 
 
 Это все!
 Хотя некоторые авторы книг утверждают:
 "Вы не можете установить компоненты Delphi в заголовок окна, точнее, не 
существует никакого способа установить их там."
 Зато существует иллюзия... |