AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie ein Form ohne Caption erstellen?

Ein Thema von Cypheros · begonnen am 3. Sep 2025 · letzter Beitrag vom 4. Sep 2025
Antwort Antwort
Benutzerbild von Cypheros
Cypheros

Registriert seit: 12. Sep 2024
Ort: Büren
45 Beiträge
 
Delphi 11 Alexandria
 
#1

Wie ein Form ohne Caption erstellen?

  Alt 3. Sep 2025, 21:48
Ok, ein Form mit BorderStyle := bsNone entfernt den Caption-Area aber es sieht nicht wie ein normales Fenster unter Windows 11 aus.

Screenshot 2025-09-03 223803.jpg

Es ist kein Rand und keine Rundung vorhanden wie unter Windows 11 üblich.

Screenshot 2025-09-03 224142.jpg

Wie macht man es richtig, dass ein Fenster im üblichen Stil entsteht?
Frank Siek

Geändert von Cypheros ( 3. Sep 2025 um 21:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.719 Beiträge
 
Delphi 12 Athens
 
#2

AW: Wie ein Form ohne Caption erstellen?

  Alt 3. Sep 2025, 22:08
Es gibt bestimmt einen "guten" Weg,

aber wenn nichts hilft
Thema: Clipping (Region)
https://www.delphi-treff.de/tipps-tr...ormularformen/ (auch hier im Forum zu finden)
https://stackoverflow.com/questions/...rners-in-win32



Die Idee einfach mal bei MSDN-Library durchsuchenCreateWindow, bzw. MSDN-Library durchsuchenCreateWindowEx nach round oder edge zu suchen, brachte nichts.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 3. Sep 2025 um 22:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Cypheros
Cypheros

Registriert seit: 12. Sep 2024
Ort: Büren
45 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Wie ein Form ohne Caption erstellen?

  Alt 3. Sep 2025, 22:14
Danke für die Vorschläge aber einfach nur ein Fenster mit einem runden Rand zu erstellen ist kein Problem. Seit Jahre bekannt.

Doch ist das nicht der aktuelle Windows-Stil sondern nur eine "Emulation". Warum verschwindet der unter Windows 11 übliche runde Rand, wenn man BorderStyle := bsNone setzt und wird rechteckig?

Kann es sein, dass inzwischen Borderstyles existieren, die Delphi nicht kennt?
Frank Siek

Geändert von Cypheros ( 3. Sep 2025 um 22:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.719 Beiträge
 
Delphi 12 Athens
 
#4

AW: Wie ein Form ohne Caption erstellen?

  Alt 3. Sep 2025, 22:25
Warum?

Der gehöert zum jeweiligen Window-Stil (der Borders+Header) und den hast du ja entfernt/deaktiviert.



Vermutung: anstatt den Window-Stil zu ändern, nur in das Zeichnen des NonClient-Bereich eingreifen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 3. Sep 2025 um 22:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
10.111 Beiträge
 
Delphi 12 Athens
 
#5

AW: Wie ein Form ohne Caption erstellen?

  Alt 4. Sep 2025, 00:04
Wenn du den Rahmen entfernst (bsNone), hast du eben auch keinen Rahmen mehr. Wenn du nur die Titelleiste entfernen möchtest, musst du auch nur diesen Teil (WS_CAPTION) entfernen, den BorderStyle aber auf bsSingle oder bsSizeable lassen:
Delphi-Quellcode:
  SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and not WS_CAPTION);
  SetWindowPos(Handle, 0, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER or SWP_FRAMECHANGED);
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Cypheros
Cypheros

Registriert seit: 12. Sep 2024
Ort: Büren
45 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Wie ein Form ohne Caption erstellen?

  Alt 4. Sep 2025, 08:18
Danke für den Versuch aber auch hier verschwindet der Rand und das Fenster wird rechteckig.

Habe inzwischen eine Möglichkeit gefunden über CustomTitleBar.

Delphi-Quellcode:
procedure TPopupForm.FormCreate(Sender: TObject);
begin
  TitleBarPanel1 := TTitleBarPanel.Create(self);
  TitleBarPanel1.Parent := self;
  CustomTitleBar.SystemHeight := False;
  CustomTitleBar.Height := 0;
  CustomTitleBar.Control := TitleBarPanel1;
  CustomTitleBar.Enabled := True;
end;
Auf diese Art sieht das Fenster aus, wie gewünscht.

Screenshot 2025-09-04 091413.jpg
Frank Siek
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz