AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Panel seitlich ohne Splitter "herausziehen"

Panel seitlich ohne Splitter "herausziehen"

Ein Thema von Opa Knack · begonnen am 8. Feb 2016 · letzter Beitrag vom 17. Feb 2016
Antwort Antwort
Opa Knack

Registriert seit: 28. Dez 2004
Ort: Köln
166 Beiträge
 
#1

Panel seitlich ohne Splitter "herausziehen"

  Alt 8. Feb 2016, 01:33
Hallo,

ich bin mir sicher, dass ich hierzu schon mal etwas im Forum gefunden habe, aber die Suche hat mir nicht weitergeholfen. Wahrscheinlich habe ich die falschen Suchbegriffe genommen, aber mehr als "flying", "slide" und ähnliches ist mir nicht eingefallen.

Auf einem Form möchte ich ein Panel "herausziehbar" machen. Es soll sich an einer Fensterseite über einen Button sichtbar machen lassen bzw. wieder verschwinden. Das Ganze soll ähnlich den Menüs in Office 2013 funktionieren, die man ja auch ausklappen kann, ohne dass die restlichen Objekte davon beeinträchtigt werden.

Die Lösungen, die ich bisher gefunden habe, verwenden einen Splitter, was jedoch nur annähernd an das herankommt, was ich suche. Bei einem Splitter werden die restlichen Objekte verschoben, was ich verhindern möchte. Das eingeblendete Panel soll sich quasi "über" die anderen Komponenten legen (und diese idealerweise bis zum Wegblenden deaktivieren). Das Endergebnis soll mehr oder weniger wie ein modales Fenster wirken, mit dem Unterschied, dass es nicht als Fenster eingeblendet wird und dass es am Fensterrand angedockt werden soll.

Hat jemand von euch einen Tipp, wie ich das bewerkstelligen kann?

Danke und Gruß
Opa
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
8.424 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Panel seitlich ohne Splitter "herausziehen"

  Alt 8. Feb 2016, 06:04
Meinst du vielleicht so etwas?
http://www.tmssoftware.com/site/toolpanels.asp
Oder auch hier gibt es die Möglichkeit:
http://www.lmdinnovative.com/products/vcl/lmddockpack/
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Opa Knack

Registriert seit: 28. Dez 2004
Ort: Köln
166 Beiträge
 
#3

AW: Panel seitlich ohne Splitter "herausziehen"

  Alt 9. Feb 2016, 01:33
Hallo,

ja, das geht in die richtige Richtung. Wobei ich die Hoffnung hege, dass ich etwas ähnliches auch noch finden kann, ohne dafür gleich ein neues Package kaufen zu müssen. Für entsprechende Tipps bin ich dankbar.

Danke und Gruß
Opa
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
234 Beiträge
 
#4

AW: Panel seitlich ohne Splitter "herausziehen"

  Alt 9. Feb 2016, 06:56
Mit AnimateWindow kannst Du eventuell selber den Effekt erzeugen den du brauchst
Delphi-Quellcode:
procedure TForm11.btn1Click(Sender: TObject);
begin
  AnimateWindow(panel1.Handle, 600, AW_HOR_POSITIVE or AW_SLIDE or AW_ACTIVATE)
end;

procedure TForm11.btn2Click(Sender: TObject);
begin
  AnimateWindow(panel1.Handle, 600, AW_HOR_NEGATIVE or AW_SLIDE or AW_HIDE)
end;

procedure TForm11.FormShow(Sender: TObject);
begin
 panel1.Hide;
end;
  Mit Zitat antworten Zitat
Geda

Registriert seit: 24. Jul 2015
20 Beiträge
 
Delphi XE8 Professional
 
#5

AW: Panel seitlich ohne Splitter "herausziehen"

  Alt 9. Feb 2016, 07:05
Wenn ich das richtig verstehe, willst Du nicht "ziehen", sondern auf eine fixe Breite/Höhe "ein- und ausklappen".

Ginge z.B. einfach mit Standardeigenschaften/-ereignissen über "Visible", das über eine Aktion (z.B. Schalterdruck) getriggert wird.

Das Überdecken der anderen Controls erreichst Du, indem das Panel
- den gleichen (oder einen übergeordneten) Parent wie die zu überdeckenden Controls hat
- die Eigenschaft "Align" des Panels auf alNone steht
- die Position des Panels bei "OnResize" des übergeordneten Controls an die jeweilige Größe angepasst wird

So das Panel vorher minimiert dargestellt werden soll, kann man statt "Visible" "Height" (beim Einblenden von oben) bzw. "Width" (beim Einblenden von der Seite) bemühen.

"Aktivieren/Deaktivieren" der anderen Controls könntest Du dann in der gleichen Aktion abarbeiten, die auch das Ein-/Ausklappen regelt.
Geert

Geändert von Geda ( 9. Feb 2016 um 07:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
8.424 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Panel seitlich ohne Splitter "herausziehen"

  Alt 17. Feb 2016, 12:29
In Delphi 10 Seattle gibt es dafür TSplitView wie ich gerade festgestellt habe:
http://docwiki.embarcadero.com/Libra...rls.TSplitView
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf