2016-10-10 2 views
-2

Je voudrais changer la barre de titre dans mon application. Je n'ai aucune idée comment je devrais faire. Pouvez-vous m'aider? J'ai trouvé beaucoup d'exemples dans Delphi mais ne fonctionne pas dans Lazarus.Changer la couleur de la barre de titre et les boutons

Comment dois-je commencer, que dois-je faire pour changer par exemple la couleur de la barre de titre ou les boutons?

+0

Quel système d'exploitation? Sous Windows, le système détermine le thème et les applications ne sont pas consultées. Sur Delphi, il existe des styles VCL dans lesquels l'application des entrées est peinte par le framework. Pas pour les faibles de cœur. –

Répondre

0

Si par barre de titre vous dire le titre de votre formulaire tout ce que vous devez faire est:

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

Ceci est un formulaire avec le nom Form1.

1

Désactivez la barre de titre d'origine en définissant BorderStyle du formulaire sur bsNone. Ajoutez ensuite un panneau aligné en haut comme nouvelle barre de titre que vous pouvez colorier de n'importe quelle façon et auquel vous pouvez ajouter SpeedButtons ou ce que vous voulez. Afin de pouvoir faire glisser la fenêtre avec la souris sur la barre de titre, vous devez ajouter ces gestionnaires d'événements pour OnMouseDown et OnMouseMove du panneau:

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;