AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Titelleiste der Form ausblenden, aber Rahmen beibehalten
Thema durchsuchen
Ansicht
Themen-Optionen

Titelleiste der Form ausblenden, aber Rahmen beibehalten

Ein Thema von Keks · begonnen am 15. Nov 2009 · letzter Beitrag vom 30. Nov 2014
Antwort Antwort
Seite 1 von 3  1 23      
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#1

Titelleiste der Form ausblenden, aber Rahmen beibehalten

  Alt 15. Nov 2009, 22:03
Ich würde gerne die Titelleiste einer Form ausblenden, den Rahmen und Schatten aber beibehalten (Vista/7).
Gleichzeitig darf der Besucher die Formgröße nicht ändern können (Mouseover am Rand soll gar nicht erst die Resize-Mausicons zeigen).

Hier ein Beispiel aus Windows7:
http://windows7news.com/wp-content/u.../09/7stack.jpg

Ich habe mich jetzt durch diverse Beispiele und Forumseinträge gewälzt und bekomme das nicht hin. Entweder es ist alles weg, oder mit Darstellungsfehlern oder die Größe bleibt änderbar...

Jemand eine konkrete Lösung?
  Mit Zitat antworten Zitat
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
185 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

Re: Titelleiste der Form ausblenden, aber Rahmen beibehalten

  Alt 26. Mär 2010, 20:19
Hast Du hierfür eine Lösung gefunden? ich stehe derzeit vor dem gleichen Problem,

Viele Grüße.
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#3

Re: Titelleiste der Form ausblenden, aber Rahmen beibehalten

  Alt 26. Mär 2010, 20:27
Nein, leider nicht. Ich habe es vorerst aufgeschoben und mich an andere Baustellen gemacht, weil ich keine Lösung dafür hatte.
Für Lösungsvorschläge wäre ich immer noch sehr dankbar.
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Titelleiste der Form ausblenden, aber Rahmen beibehalten

  Alt 26. Mär 2010, 20:41
Hallo,

Form ohne Leisten
BorderStyle auf bsNone setzen und auf die Form ein Bild mit den Rändern plazieren?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
185 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

Re: Titelleiste der Form ausblenden, aber Rahmen beibehalten

  Alt 26. Mär 2010, 20:50
Hallo Klaus,

das ist keine wirkliche Lösung, oder willst du für jedes Windows Layout was es inzwischen gibt ein Bild nachzeichnen und dann alles hin und herschalten?

Viele Grüße.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

Re: Titelleiste der Form ausblenden, aber Rahmen beibehalten

  Alt 26. Mär 2010, 21:04
Damit geht die Titelleiste weg ... aber so richtig hübsch sieht es noch nicht aus
Delphi-Quellcode:
procedure TForm1.FormCreate( Sender : TObject );
  begin
    SetWindowLong( Handle, GWL_STYLE, GetWindowLong( Handle, GWL_STYLE ) and not WS_CAPTION );
    ClientHeight := Height;
  end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#7

Re: Titelleiste der Form ausblenden, aber Rahmen beibehalten

  Alt 27. Mär 2010, 22:06
Meine Idee dazu ist, das vorhandene Hauptfenster durch ein weiteres (rahmenloses) Fenster zu verdecken. Die Größe des zweiten Formulars muss dann entsprechend angepasst werden. Das Ganze ist bestimmt noch optimierbar, aber vielleicht hilft das ja schon weiter. Anbei kleine Demo (getestet mit Delphi 2007+2009). Hier ein Auszug, der das Grundprinzip zeigt:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  Form2 := TForm2.Create(Self);
  ResizeClientForm;
  Form2.Show;
end;

procedure TForm1.ResizeClientForm;
begin
  if Assigned(Form2)
  then begin
    Form2.SetBounds(Left + Glassframe.Left,
                    Top + Glassframe.Top,
                    ClientWidth,
                    ClientHeight + GetSystemMetrics(SM_CYCAPTION));
  end;
end;

procedure TForm1.WMMove(var msg: TWMMove);
begin
  ResizeClientForm;
end;
Angehängte Dateien
Dateityp: zip specialwindow_107.zip (18,7 KB, 54x aufgerufen)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Titelleiste der Form ausblenden, aber Rahmen beibehalten

  Alt 27. Mär 2010, 22:12
Meine Lösung:
Delphi-Quellcode:
procedure TfrmMain.FormCreate(Sender: TObject);
var
  lStyle: cardinal;
begin
  lStyle := WS_POPUP or WS_THICKFRAME;
  SetWindowLong(Handle, GWL_STYLE, lStyle);
  SetWindowPos(Handle, 0, 0, 0, 0, 0, SWP_FRAMECHANGED or SWP_NOMOVE or
    SWP_NOREPOSITION or SWP_NOSIZE or SWP_NOACTIVATE);
end;
[edit]
Ach sorry, hab nicht gelesen, dass es nicht in der Größe veränderbar sein darf.
[/edit]
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#9

Re: Titelleiste der Form ausblenden, aber Rahmen beibehalten

  Alt 27. Mär 2010, 23:13
@NamenLozer
Also das geht ja schon in die richtige Richgung. Es müsste ja "nur" noch das Resizen deaktiviert werden.

Jetzt habe ich eine halbe Stunde lang mit den ganzen WS_... Werten herumgespielt. Aber entweder es war kein Rahmen mehr da, es war nur der Rahmen da aber mit Resize oder es war der Rahmen da ohne Resize, aber dafür mit Programmleiste oben. Irgendwo muss doch da der Trick sein...

Vielleicht hat ja jemand mehr Erfolg beim Ausprobieren...
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#10

Re: Titelleiste der Form ausblenden, aber Rahmen beibehalten

  Alt 27. Mär 2010, 23:38
Probier mal lStyle := WS_DLGFRAME

Grüsse, Dirk
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 08:51 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