AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Rahmen außerhalb des Fensters zeichnen?
Thema durchsuchen
Ansicht
Themen-Optionen

Rahmen außerhalb des Fensters zeichnen?

Ein Thema von PeterPanino · begonnen am 16. Okt 2023 · letzter Beitrag vom 18. Okt 2023
Antwort Antwort
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#1

Rahmen außerhalb des Fensters zeichnen?

  Alt 16. Okt 2023, 16:17
Hallo!

Mit diesem Code wird Border offenbar immer INNERHALB des Formulars erzeugt:

Delphi-Quellcode:
Form1.BorderStyle := bsSingle;
Form1.BorderWidth := 4;
Wie kann man aber einen Rahmen außerhalb des Fensters erzeugen - so wie hier in PowerToys Always On Top:

border.png
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Rahmen außerhalb des Fensters zeichnen?

  Alt 16. Okt 2023, 17:15
Den Inhalt des "Fensters" kleiner zeichnen, damit außenrum noch Platz für den Rahmen ist.

Wobei das "eigentliche" Fenster in Windows aktuell ebenfalls bereits einen unsichtbaren Rahmen Randbereich hat, wo die Schatten gemalt werden,
und das "Fenster", was wir verwalten, also dessen Rahmen/Titelleiste demnach bereits nach innen versetzt ist.

Also das noch mehr nach innen zu verschieben, wobei dann Rahmen und Titelleiste von "dir" gezeichnet werden müssen, sowie die Behandlung der Systembuttons usw.
PS: siehe CustomTitleBar aka TTitleBarPanel (man kann auch dem System sagen "male mir hier eine bestimmte System-Komponente hin")
$2B or not $2B

Geändert von himitsu (16. Okt 2023 um 18:44 Uhr)
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Rahmen außerhalb des Fensters zeichnen?

  Alt 16. Okt 2023, 17:56
Ich würde vermuten, das auf dem Bild ist schlicht eine andere Form. Die ist entweder dahinter oder drum herum: Form der Gesamtgröße und dann ein "Loch" in der Mitte. Geht mit TransparentColor, von der Performance her ist aber eine echte Shape-Komponente besser.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Rahmen außerhalb des Fensters zeichnen?

  Alt 16. Okt 2023, 18:15
von der Performance her ist aber eine echte Shape-Komponente besser.
Wie würdest du eine Shape-Komponente außerhalb der Form anzeigen?
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Rahmen außerhalb des Fensters zeichnen?

  Alt 16. Okt 2023, 18:49
Ein zweites Fenster davor/dahinter, da hat man dann damit zu kämpfen die Z-Order beizubehalten und beim Verschieben absolut synchron zu halten, sonst sieht es sch* aus.

Ein zweites Fenster und das eigentliche Fenster da rein verschieben, ähnlich MDI. (MyForm.Parent := BorderForm)

Oder siehe oben.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Rahmen außerhalb des Fensters zeichnen?

  Alt 16. Okt 2023, 19:59
Wie kann man aber einen Rahmen außerhalb des Fensters erzeugen - so wie hier in PowerToys Always On Top
Wie man leicht prüfen kann, erzeugen die PowerToys ein zusätzliches Fenster, schneiden die Region des Fensters entsprechend zu und führen es mit dem anderen Fenster mit. (Das kann man mit Tools wie dem Window Detective leicht sehen.)
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Rahmen außerhalb des Fensters zeichnen?

  Alt 16. Okt 2023, 20:03
Werde mich mal an die Arbeit machen ...
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Rahmen außerhalb des Fensters zeichnen?

  Alt 18. Okt 2023, 22:01
von der Performance her ist aber eine echte Shape-Komponente besser.
Wie würdest du eine Shape-Komponente außerhalb der Form anzeigen?
Gemeint ist eine "Komponente", die die Form zuschneidet. Als Alternative zu TransparentColor. Zumindest ohne DWM war TransparentColor eine Performance-Katastrophe. Ich habe es nach Windows XP nie mehr für nötig gehalten, nicht-rechteckige Forms Forms zu haben, daher hab ich keine Ahnung, ob TransparentColor inzwischen besser funktioniert.
Janni
2005 PE, 2009 PA, XE2 PA
  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 02:16 Uhr.
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