更改标题栏颜色和按钮

时间:2016-10-10 22:53:30

标签: lazarus freepascal

我想在我的应用程序中更改标题栏。我不知道该怎么做。你能救我吗?

我在Delphi中发现了很多例子但在Lazarus中没有用。

我应该如何开始,如何更改标题栏颜色或按钮?

2 个答案:

答案 0 :(得分:1)

通过将表单的BorderStyle设置为bsNone来关闭原始标题栏。然后添加一个顶部对齐的面板作为新标题栏,您可以以任何方式着色,并可以添加SpeedButtons或任何您想要的。为了能够在标题栏上用鼠标拖动窗口,您应该为面板的OnMouseDown和OnMouseMove添加这些事件处理程序:

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer
      );
  private
    FMouseDownPt: TPoint;
  public
  end;

procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  FMouseDownPt := Point(X, Y);
end;

procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
  if (ssLeft in Shift) then
  begin
    Left := Left + (X - FMouseDownPt.X);
    Top := Top + (Y - FMouseDownPt.Y);
  end;
end; 

答案 1 :(得分:0)

如果通过标题栏表示表单的标题,那么您需要做的就是:

    Form1.Caption := 'The title of the form';

这是一个名为Form1的表单。