Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Hauptmenü vertikal ? (https://www.delphipraxis.net/80712-hauptmenue-vertikal.html)

-=cats=- 14. Nov 2006 08:32


Hauptmenü vertikal ?
 
Hi :-)

Gibt es eine Möglichkeit, das Hauptmenü nicht in einer Zeile
horizontal oben auf dem Bildschirm anzuzeigen, sondern vertikal
am rechten Rand ?
Also, ich möchte dass das dann so aussieht:

Datei
Bearbeiten
Ansicht
...

Alles schön untereinander :-)
Geht das ? Wenn ja, wie ?
Leider konnte ich bisher nichts finden ... :?

-=cats=-

SirThornberry 14. Nov 2006 08:56

Re: Hauptmenü vertikal ?
 
mit dem normalen Mainmenü geht das nicht, du müsstest dir das selbst programmieren oder suchen ob schon jemand so eine Komponente geschrieben hat

-=cats=- 14. Nov 2006 09:15

Re: Hauptmenü vertikal ?
 
Hmm ... selber programmieren klingt schon mal nicht schlecht.
Leider bin ich noch blutiger Anfänger :-)
Daher wäre meine erste Überlegung: Komme ich denn irgendwie
an den Quelltext von diesem MainMenu was es in Delphi bereits
gibt ?

Sorry, ich hab davon echt noch nicht viel Ahnung :-)

Also, ich habe da ja unter "Standard" das MainMenu.
Wenn ich das einfüge dann ist das ja nur so ein kleiner Button,
auf den ich klicken kann um das Menü zu bearbeiten.
Und wenn ich dann in den Quellcode schaue, dann steht da nur
was wenn ich z.B. Datei --> Beenden ne Funktion zugewiesen habe ...
Ich hoffe, man versteht einigermaßen, was ich meine ...

Aber jetzt muss doch irgendwo noch stehen, wie dieses Menü angeordnet
ist. Woher weiß er, das Datei neben Bearbeiten steht ? Bzw. woher
weiß er überhaupt, das es nebeneinander stehen muss ?
Ich denke mir, dass das ja irgendwo mal festgelegt worden sein muss.
Kommt man da irgendwie dran, das ich das verändern kann ?
Oder denke ich da zu kompliziert ??

-=cats=-

xaromz 14. Nov 2006 09:28

Re: Hauptmenü vertikal ?
 
Hallo,
Zitat:

Zitat von -=cats=-
Aber jetzt muss doch irgendwo noch stehen, wie dieses Menü angeordnet
ist. Woher weiß er, das Datei neben Bearbeiten steht ? Bzw. woher
weiß er überhaupt, das es nebeneinander stehen muss ?
Ich denke mir, dass das ja irgendwo mal festgelegt worden sein muss.
Kommt man da irgendwie dran, das ich das verändern kann ?
Oder denke ich da zu kompliziert ??

wie alle visuellen Einstellungen, die Du im Formdesigner vornimmst, werden auch diese Einstellungen im Form (*.dfm) gespeichert.

Die Quellen des TMenu werden Dir wahrscheinlich nicht viel bringen. Die VCL baut hier auf dem Windows-API auf, und das unterstützt IMHO keine vertikalen Menüs. Bei den Programmen, die sowas haben, wurde das komplett selbst programmiert. Das hat auch jemand für Delphi getan: Schau Dir doch mal Toolbar2000 an, da kann man das Menü an die Seite legen, allerdings wird dann auch der Text gekippt.

Gruß
xaromz

Phoenix 14. Nov 2006 09:31

Re: Hauptmenü vertikal ?
 
Such mal nach Outlookbar. Das ist so eine Komponente die am Rand die Einträge untereinander darstellen kann.

-=cats=- 14. Nov 2006 10:25

Re: Hauptmenü vertikal ?
 
Also, ich habe mal nach OutlookBar gesucht.

Dann bin ich auf dieses JEDI JCL gestoßen.
Das kann man sich runterladen. Habe ich auch gemacht
und anschließend versucht das in Delphi 6 einzubinden.

Da gibts so ne install.bat wenn man sich das runterlädt.
Damit habe ich das installiert.
Wenn ich nun in Delphi auf

"Komponenten --> Packages installieren" klicke, dann
steht das JCL da auch mit einem Haken drin.
Nur irgendwie wird das bei mir nicht angezeigt ..
In dieser Zeile wo auch Standard, Zusätzlich etc ist ..

Mache ich da noch irgendwas falsch ?

Ralf Kaiser 14. Nov 2006 16:11

Re: Hauptmenü vertikal ?
 
Hi,

du hast die JCL heruntergeladen und installiert. Die von dir gesuchte Komponente befindet sich aber in der JVCL (man achte auf das "V" = "visual")

Daß die die JCL installiert hast ist schon ganz gut (JVCL benötigt die nämlich). Lade dir auch noch die JVCL herunter und installier sie und dann wirst du die Komponente finden.

Ciao,
Ralf

_frank_ 15. Nov 2006 00:52

Re: Hauptmenü vertikal ?
 
wie denkst du dir das mit Untermenüs (wie soll das aussehen)?

mal ein versuch sowas zu implementieren (vorerst links), wenn ich dich richtig verstanden habe...

Delphi-Quellcode:
//dfm:
object Form1: TForm1
  Left = 200
  Top = 108
  Width = 870
  Height = 640
  Caption = 'Form1'
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  PixelsPerInch = 96
  TextHeight = 13
  object ListBox1: TListBox
    Left = 0
    Top = 0
    Width = 45
    Height = 97
    Color = clBtnFace
    ItemHeight = 13
    Items.Strings = (
      '1'
      '2'
      '3')
    TabOrder = 0
    OnClick = ListBox1Click
  end
  object PopupMenu1: TPopupMenu
    Left = 48
    object menu11: TMenuItem
      Caption = 'menu1-1'
    end
    object menu121: TMenuItem
      Caption = 'menu1-2'
    end
  end
  object PopupMenu2: TPopupMenu
    Left = 48
    Top = 28
    object menu211: TMenuItem
      Caption = 'menu2-1'
    end
    object menu221: TMenuItem
      Caption = 'menu2-2'
    end
  end
  object PopupMenu3: TPopupMenu
    Left = 48
    Top = 56
    object menu311: TMenuItem
      Caption = 'menu3-1'
    end
    object menu321: TMenuItem
      Caption = 'menu3-2'
    end
  end
end
Delphi-Quellcode:
//pas
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    PopupMenu1: TPopupMenu;
    PopupMenu2: TPopupMenu;
    PopupMenu3: TPopupMenu;
    menu11: TMenuItem;
    menu121: TMenuItem;
    menu211: TMenuItem;
    menu221: TMenuItem;
    menu311: TMenuItem;
    menu321: TMenuItem;
    procedure ListBox1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ListBox1Click(Sender: TObject);
var p:TPoint;
    pm:TPopupmenu;
begin
  p:=Point(Listbox1.left,listbox1.top);
  p:=ClientToScreen(p);
  pm:=(findcomponent('popupmenu'+IntToStr(Listbox1.Itemindex+1)) as TPopupmenu);
  if assigned(pm) then
    pm.popup(p.x+listbox1.width,p.y+Listbox1.Itemindex*Listbox1.Itemheight);
end;

end.
rechts sollte sich per TPopupmenu.Alignment und ohne "+listbox1.width" realisieren lassen.

HTH Frank

-=cats=- 15. Nov 2006 07:18

Re: Hauptmenü vertikal ?
 
Hi Alfi,

vielen Dank !
Ich lade mir jetzt gerade so eine zip-Datei wo scheinbar JCL und JVCL drin sind :-)
Das werde ich dann gleich mal ausprobieren :-)

und an Frank : :-)

Dir auch vielen Dank !
Da ich gestern nicht mehr so viel gefunden habe zu dem Menü, habe ich mir eine
andere Möglichkeit überlegt. Allerdings ist die mehr "gefuscht" finde ich ;-)
und deshalb noch nicht meine endgültige Lösung.
Ich habe mir ein Panel am rechten Rand gemacht mit ein paar SpeedButtons.
Und jeder SpeedButton hat ein PopUp Menu bekommen. Gefällt mir noch nicht so gut,
man sieht auch das es nur ein PopUp Menu ist. Naja. Und dann musste ich auch noch
feststellen, das man da nicht so einfach die Farbe ändern kann :-( Zumindest ist es
für einen Anfänger nicht so leicht :?
Deine Idee werde ich aber noch ausprobieren !

Gruß,
-=cats=- :coder:

kalmi01 15. Nov 2006 08:31

Re: Hauptmenü vertikal ?
 
Zitat:

Such mal nach Outlookbar. Das ist so eine Komponente die am Rand die Einträge untereinander darstellen kann.
Oder Du packst eine Toolbar auf Deine Form, Align = alRight eingestellt.
In "Menu" von Toolbar Dein MainMenu eintragen und fertig.

Auf diese Weise kannst Du Dein MainMenu quasi überall platzieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:56 Uhr.
Seite 1 von 2  1 2      

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