AGB  ·  Datenschutz  ·  Impressum  







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

Was für ne scharfe Auswahlleiste

Ein Thema von Jelly · begonnen am 13. Jul 2007 · letzter Beitrag vom 19. Jul 2007
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#1

Was für ne scharfe Auswahlleiste

  Alt 13. Jul 2007, 18:36
In einem ganz anderem Thread, nämlich in diesem, ging es um Backupprogramme. Und genau das biete eine wirklich hübsche Navigationsleiste an, wie sie im Anhang zu sehen ist.

Was mir daran so besonders gefällt, ist das beim Drüberbewegen der Maus, die Transparenz der Markierung nach rechts hin zunimmt, so dass am Rand sogar der Hintergrund komplett durchleuchtet.

Kennt jemand eine solche Komponente für Delphi. Ich hab die TMS Component Pack. Dort sind paar hundert Komponenten drin, aber nichts in der Richtung, es sei ich wär blind.
Miniaturansicht angehängter Grafiken
acronis_612.png  
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Was für ne scharfe Auswahlleiste

  Alt 13. Jul 2007, 18:38
eigentlich sollte das selbst programmieren kein Problem weiter sein. Die Markierung wird einfach nur ein Bild mit Alphamaske sein. Und nach Rechts hinn ist die Alphamaske eben transparenter.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Prototypjack

Registriert seit: 2. Feb 2003
611 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Was für ne scharfe Auswahlleiste

  Alt 13. Jul 2007, 18:45
Moin,

Stimmt, das Ding sieht tatsächlich nicht schlecht aus

Wenn ich gezwungen wäre sowas zu bauen, würde ich (weil ich es für sehr unwahrscheinlich halte, dass es sowas bereits gibt), wohl auf das gute alte Virtual Treeview von Mike zurückgreifen. Damit sollte das ganz leicht gehen.
  • Hintergrundbild reinstecken
  • NodeHeight einstellen
  • Node-Drawing abfangen (geht ganz leicht, habe ich schon oft gemacht. Die Komponente liefert eigens dafür gesonderte Events) und ab geht's.
Wie gesagt, das würde ich am ehesten versuchen. Eine fertige Komponente die dir die Funktion vom Screenshot bietet kenne ich leider nicht.

Ich hoffe ich konnte ein bisschen weiterhelfen!

Grüße,
Max

(Natürlich kannst du das ganze auch leicht selbst basteln, aber dann ist es nicht mehr so allgemein, wobei man die Lösung per Virtual Treeview ohne, bzw. mit wenigen Änderungen, wiederverwenden könnte!)
Max
„If you have any great suggestions, feel free to mail me, and I'll probably feel free to ignore you.“ . Linus Torvalds
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Was für ne scharfe Auswahlleiste

  Alt 13. Jul 2007, 19:07
so kompliziert würde ich es mir gar nicht machen. Um es richtig flexibel zu halten braucht man nur die Markierung als Komponenten programmieren. Sobald sich dann die Maus über der Komponente befindet braucht man einfach nur ein zuvor zugewiesenes Bild (mit Alphakanal) einblenden, ansonsten einfach gar nix zeichnen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 1. Dez 2003
Ort: Luterbach (CH)
679 Beiträge
 
Delphi 12 Athens
 
#5

Re: Was für ne scharfe Auswahlleiste

  Alt 13. Jul 2007, 19:46
Der Linke Teil wurde mit JVCL-Komponenten erstellt - ev. auch der Rechte Menüteil?
Roland
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Was für ne scharfe Auswahlleiste

  Alt 13. Jul 2007, 19:48
Alphamasken ist ja schön und gut. Nur hab ich keinen blassen Schimmer wie ich sowas angehen könnte.

(Das linke Menü ist kein Problem, dafür hätte ich eine Komponente.)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Was für ne scharfe Auswahlleiste

  Alt 13. Jul 2007, 19:59
mit der Funktion AlphaBlend aus der Unit Windows geht es eigentlich.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#8

Re: Was für ne scharfe Auswahlleiste

  Alt 13. Jul 2007, 20:11
Um ein PNG zu laden, kannst du PngDelphi benutzen. Die genannte Funktion AlphaBlend würde in diesem Falle ausreichen, sobald es aber um ein bisschen mehr als simples Aufeinanderkopieren zweier Bitmaps geht, solltest du zu GDI+ oder GR32 greifen, denn da Delphi noch GDI benutzt, hat es keine Ahnung von deinem Alphakanal, was ungut enden könnte.

PS: Normalerweise halte ich mich mit solchen Kommentaren zurück, da sie meist nicht so wirklich weiterhelfen, aber da ich weiß, dass du mit C# programmierst (programmiert hast?), muss ich es einfach erwähnen: Mit WPF könnte man so ein Ding in 5 Minuten from scratch entwickeln, ohne eine Zeile Code geschrieben oder irgendein Bildbearbeitungsprogramm geöffnet zu haben.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Was für ne scharfe Auswahlleiste

  Alt 14. Jul 2007, 11:41
Zitat von Khabarakh:
Um ein PNG zu laden, kannst du PngDelphi benutzen. Die genannte Funktion AlphaBlend würde in diesem Falle ausreichen, sobald es aber um ein bisschen mehr als simples Aufeinanderkopieren zweier Bitmaps geht, solltest du zu GDI+ oder GR32 greifen, denn da Delphi noch GDI benutzt, hat es keine Ahnung von deinem Alphakanal, was ungut enden könnte.
Mit GR32 meinst du wohl Graphics32... Damit könnte es gehen, hab ich gar nicht dran gedacht.

Zitat von Khabarakh:
Mit WPF könnte man so ein Ding in 5 Minuten from scratch entwickeln, ohne eine Zeile Code geschrieben oder irgendein Bildbearbeitungsprogramm geöffnet zu haben.
Also die .NET Lösung würd mich auch interessieren, weil ich auf der Arbeit ausschliesslich mit .NET arbeite und den Chef beeindrucken will
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#10

Re: Was für ne scharfe Auswahlleiste

  Alt 15. Jul 2007, 12:36
Zitat von Jelly:
Also die .NET Lösung würd mich auch interessieren, weil ich auf der Arbeit ausschliesslich mit .NET arbeite und den Chef beeindrucken will
Sodele, ich hab da mal was vorbereitet... .

Die einzelnen Schritte in Kurzfassung:
  1. Wie gewohnt (bzw. erfrischend ungewohnt im Vergleich zur Win32-GUI) das Layout erstellen und eine ListBox inkl. einiger Items hinzufügen. Schon werden die Vorteile von WPFs Lookless Controls ersichtlich: zum Einen können wir in eine stinknormale Listbox einfach ein Image oder formatierten Text werfen...
  2. ... zum Anderen können wir nun das Standard-Aussehen (Template) der ListBoxItems beliebig verändern, ohne die Logik der ListBox neu schreiben zu müssen. Es bleibt dabei: null Zeilen Code.
    In Blend gelangt man zum Template durch einen Rechtsklick auf das Item -> Edit Control Parts (Template)
  3. Zur Realisierung des Rahmens habe ich den ContentPresenter (also das Ding, in dem nachher der eigentliche Item-Inhalt landet) in ein Grid verpackt, um ein (abgerundetes) Rectangle darunter schieben zu können. Dem Rectangle geben wir mit zwei Klicks noch den richtigen AlphaMask-Gradienten und verkoppeln über einen Trigger seine Visible-Eigenschaft mit der IsMouseOver-Eigenschaft des Items. Fertig.
Man könnte natürlich noch ein wenig/ewig am Layout herumtweaken, Animationen einfügen (langsames Einblenden des Rahmens usw.) oder beispielsweise die linke Leiste noch ans Original anpassen, aber in erster Linie ging es ja darum, so einfach wie möglich den transparenten Rahmen zu realisieren.

Zu näheren Erklärungen stehe ich gerne bereit, WPF ist nicht gerade ein auf den ersten Blick erfassbares Gebiet.
Miniaturansicht angehängter Grafiken
listbox_745.png  
Angehängte Dateien
Dateityp: zip prettylistboxselection_206.zip (105,4 KB, 77x aufgerufen)
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 22:41 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