Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Breite der Titelleiste ändern (https://www.delphipraxis.net/106352-breite-der-titelleiste-aendern.html)

Alex_ITA01 9. Jan 2008 16:10


Breite der Titelleiste ändern
 
Hallo zusammen,
kennt jemand eine Möglichkeit, die Titelleiste eines Formulars (nur die Titelleiste, nicht den Rahmen!) auf eine bestimmte Höhe zu bringen?
Ich möchte, dass die Titelleiste breiter damit für gewisse Personen, die diese schmale Leiste nicht treffen, diese größer ist und besser das Formular verschieben können.

Ich hoffe ihr könnt mir da helfen.
Danke und viele Grüße,
Alex

Luckie 9. Jan 2008 16:17

Re: Breite der Titelleiste ändern
 
Die Titelleiste gehört zum Non-Client Bereich des Fensters und wird von Windows gezeichnet. Jemand dem die Höhe zu klein ist, kann dies systemweit entsprechend anpassen. Du solltest es auch dem Benutzer selber überlassen, wie er es gerne haben möchte.

OldGrumpy 9. Jan 2008 16:41

Re: Breite der Titelleiste ändern
 
Natürlich bleibt ausserdem aber noch die Möglichkeit, Mausklicks und Drag&Drop auf den Clientbereich ebenso zu handhaben als wären diese auf die Titelleiste erfolgt... Bei Winamp z.B. kann man auch das ganze Fenster verschieben wenn man es an einem freien Punkt innerhalb des Fensters "anfasst". (Also dort wo keine Steuerelemente im Fenster liegen...)

Alex_ITA01 10. Jan 2008 10:02

Re: Breite der Titelleiste ändern
 
Hallo zusammen,
Danke für den Tip @OldGrumpy.

Weißt du auch zufällig wie diese Funktion wie du sie beschrieben hast, realisiert wird?

Viele Grüße,
Alex

Luckie 10. Jan 2008 10:12

Re: Breite der Titelleiste ändern
 
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  protected
    procedure WMLButtonDown(var msg: TMsg); message WM_LBUTTONDOWN;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMLButtonDown(var msg: TMsg);
begin
  SetCursor(LoadCursor(0, IDC_SIZEALL));
  SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, msg.lParam);
end;

end.

Alex_ITA01 10. Jan 2008 10:44

Re: Breite der Titelleiste ändern
 
Danke, teste ich gleich mal...
MFG Alex

Muetze1 10. Jan 2008 10:48

Re: Breite der Titelleiste ändern
 
Warum nutzt ihr nicht die dafür von Windows extra vorgesehene Message WM_NCHITTEST? Diese sendet Windows doch extra um zu ermitteln, auf was der Nutzer geklickt hat. Warum werden immer wieder Lösungen gepostet (ob nun SC_XXX oder diese hier) welche ein schon angefangenes (richtiges) Windows Verhalten nachträglich umzubauen. Windows wird es auch wirklich nicht einfach gemacht und dann wird gemeckert wenn diese "Hacks" irgendwann nicht mehr funktionieren. Geht den offiziellen Weg: WM_NCHITTEST

bitsetter 10. Jan 2008 11:10

Re: Breite der Titelleiste ändern
 
In der Code- Library gibt es ansonsten noch was Fenster ohne Titelzeile verschieben .

Luckie 10. Jan 2008 11:10

Re: Breite der Titelleiste ändern
 
Ich kannte bisher nur diese Lösung.

bitsetter 10. Jan 2008 11:12

Re: Breite der Titelleiste ändern
 
Warum der Code aus der Code- Library ist doch von dir.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz