Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi problem mit "menüanzeige" (https://www.delphipraxis.net/33142-problem-mit-menueanzeige.html)

stonimahoni 2. Nov 2004 11:00


problem mit "menüanzeige"
 
hi leute
hab mal wieder ne frage weiss aber nicht ob sie hierhergehört :

also :
ich hab ein formular auf dem sich ein button befindet. wenn ich den drücke hättei ch gern dass sich der darunter befindende button weiter nach unten schiebt und dann ein kleines "untermenü" aufgeht ( 2 neue buttons zur verfügung stehen )
so wie in html oder java oder was weiss ich ... ich versteht ? also button klick und dann stehen da ein paar unterpunkte von denen ich wieder aktionen aus starten kann

sowas in delphi realisierbar ?

danke schonmal

mfg

stoni

Nicodius 2. Nov 2004 11:02

Re: problem mit "menüanzeige"
 
also das was ich da entziffern konnte war das du ein aufklappbares menü haben willst... schau mal da gibts ein ThemeXP teil wo man ein menü mit untermenüs haben kann wenn ich mich nicht irre

mfg

Nico

alcaeus 2. Nov 2004 11:05

Re: problem mit "menüanzeige"
 
Hi stonimahoni,

das Komponentenpackage heißt Design eXperience. Die Komponenten sind aber auch bei den JEDIs dabei.

Greetz
alcaeus

shmia 2. Nov 2004 11:10

Re: problem mit "menüanzeige"
 
Es geht auch mit Delphi Bordmitteln:
Setz einen Button und ein Popup-Menue auf ein Formular. Und Dann:
Delphi-Quellcode:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
   pt: TPoint;
begin
   pt.x := SpeedButton1.BoundsRect.Left;
   pt.y := SpeedButton1.BoundsRect.Bottom;
   pt := ClientToScreen(pt);
   PopupMenu1.Popup(pt.x, pt.y);
end;

stonimahoni 2. Nov 2004 11:31

Re: problem mit "menüanzeige"
 
hi shmia

also deine lösung scheint brauchbar zu sein, doch wie positionier ich das teil richtig ??

ich hab halt rechts die buttonleiste und dort soll eigentlich neben dem einen button den ich drücke das popupding aufgehen und nicht irgwendwo im formular :)

kann man das irgendwie hinbekommen ??



@ Nicodius :
das themexp ding hab ich nirgends gefunden :/

@ alcaeus : war erstmal ein akt das zeug einzubinden ( bin da nicht so fit drin )
aber ez hab ich da noch nix passendes gefunden :(



thx soweit schonmal

stonimahoni 2. Nov 2004 11:38

Re: problem mit "menüanzeige"
 
@ alcaeus

kann ich die buttons irgendwie anders aussehen lassen ? so "normal" wie in delphi ? so standartmässig ? kein xp style :)

weil dann könnte man das teil ( dxwinxpbar ) doch verwenden denk ich

was kann ich mit den anderen komponenten anfangen ? *grübel*

alcaeus 2. Nov 2004 11:42

Re: problem mit "menüanzeige"
 
Hi stonimahoni,

da musst du schon in den Sourcen wühlen oder dich auf shmias Tipp verlassen. Die Design eXperience Komponenten wurden entwickelt, um Anwendungen "XP-freundlich" zu machen.
Probier die anderen Kompos mal aus, dann wirst du sehen was sie taugen ;)

Greetz
alcaeus

pjuk 2. Nov 2004 11:48

Re: problem mit "menüanzeige"
 
Hallo!

hm shmia lösung funktioniert bei mir gut, jedoch will ich eine genaue position des Popups haben.

Code:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
   pt: TPoint;
begin
   pt.x := SpeedButton1.BoundsRect.Left;
   pt.y := SpeedButton1.BoundsRect.Bottom;
   pt := ClientToScreen(pt);
   PopupMenu1.Popup(pt.x, pt.y);
end;
Weis wer, was da die positionsangabe ist oder wie man die festlegen kann?

stonimahoni 2. Nov 2004 13:11

Re: problem mit "menüanzeige"
 
zusatz :

mir scheint, dadurch dass meien buttons auf nem panel liegen funzt der code nicht richtig und der macht das popupfenster wild irgendwo auf
weil ohne panel scheint es zu gehen

und es soll bitte mit der LINKEN maustaste möglich sein

hat da jmd nen rat für mich ?

fiasko 2. Nov 2004 13:26

Re: problem mit "menüanzeige"
 
Hallo,

das PopupMenu1.Popup popt das Menü mit absoluten Koordinaten auf (steh auch in der OH :-)), die Position die die SpeedButtons haben sind jedoch relativ zum höheren Element, also deinem Panel.

Das ClientToScreen is eine Methode deines TForms, welches Formular Koordinaten auf Bildschirmkoordinaten umrechnet. Allerdings hast du ja erst Panel Koordinaten. Du mußt also entweder die Position des Panels noch hinzufügen oder besser, das Panel bietet auch so ne ClientToScreen Methode, bin ich mir jetzt aber nicht sicher.

Ich würde ja noch Code schreiben... aber muß zur Vorlesung :-(


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:22 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