![]() |
Menü in Delphi realisieren
Schönen Tag Liebe User,
da mir per PN leider niemand helfen wollte, frag ich nun doch hier direkt im Forum - Wäre wirklich nett wenn mir jemand helfen könnte! Schonmal vorab größten Dank! Ich wollte euch nämlich fragen, welche Möglichkeiten ich besitze, in Delphi ein Menü zu realisieren. Auf folgender Website habe ich bereits eine Möglichkeit dafür gefunden, jedoch werden da bei jedem Klick auf einen der Menüpunkte einfach in der Prozedur die jeweiligen Komponenten ein-/ bzw ausgeblendet - Bei sehr vielen Seiten die ich dabei also im Programm realisieren möchte, würde der Quelltext ja schon allein durch diese Sachen ünnötig lang werden. Link > ![]() Gibt es eine elegantere Lösung? Am schönsten wäre es ja, wenn es sowas gehen würde, dass ich alle Seiten einzeln machen könnte und diese so wie im Internet durch eine Art IFrame oder Include dann in das Formular einbinden könnte. Ich hoffe ihr versteht was ich meine und könnt mir helfen. Nochmal lieben Dank! Grüße, Gregor |
Re: Menü in Delphi realisieren
Du könntest das menü ja zur Laufzeit erzeugen lassen.
|
Re: Menü in Delphi realisieren
Zitat:
wenn du es etwas ausführen könntest, hab damit noch nicht lange zu tun =)! Danke! |
Re: Menü in Delphi realisieren
Wenn du vielleicht geanuer beschreiben würdest, was du genau vor hast.
|
Re: Menü in Delphi realisieren
Liste der Anhänge anzeigen (Anzahl: 1)
Warum nicht einfach die TMainMenu Komponente aufs Formular ziehen und dann doppelt anklicken?
Bye Christian |
Re: Menü in Delphi realisieren
Ich habe vor (wie dem Aufbau z.B. einer Website nach) in Delphi ein Programm
zu schreiben, wo ich aufgrund der besseren Benutzerfreundlichkeit ein Menü integrieren möchte. Damit möchte ich auf verschiedene Bereiche zugreifen, nehmen wir mal an ich habe vor für 20 Städte NRWs Menüpunkte anzulegen, weil ich für jede Stadt dann im gleichen Fenster best. Informationen einfügen will. Für jede Stadt sind dann halt versch. Komponenten Komponenten vorgesehen, die jedoch nie alle gemeinsam angezeigt werden, sondern immer nur für die jeweilige Sektion (Menüpunkt) ... Nun habe ich wie gesagt im Internet durch den Link sowas gefunden, jedoch ist dort das Prinzip die Menüpunkte einfach als Ein/- und Ausschalter für die Visible-Eigenschaft auszunutzen. Jedoch würde dies in meinem Fall z.B. den Quellcode total lang machen, da ich ja 20 Menüpunkte habe mit sagen wir mal 10 Komponenten ... dann müsste ich ja in jeder Menüpunktprozedur reinschreiben welche Komponenten angezeigt werden sollen und welche nicht ... und bei der Masse an Komponenten doch ein unglaubliches Chaos ... versteh ihr was ich meine? Sorry, falls die Sätze etwas abgehackt sind ... |
Re: Menü in Delphi realisieren
Mist, ausversheen statt Edit .. Zitat gedrückt - Sorry!
|
Re: Menü in Delphi realisieren
Ist die Struktur der Menüs immer gleich? Dann könnte man die Menüpunkt dementsprechend umbenenne oder diese zur laufzeit erstellen und wieder zu entfernen, wenn ein anderer Bereich gewählt wird.
|
Re: Menü in Delphi realisieren
Wenn ich dich richtig verstehe fragst du ob die Anordnung und
der Inhalt des Menüs stetig gleich bleibt, egal wessen Inhalt gerade dort angezeigt wird? Dann ja - Also will halt z.B. fünf Begriffe im Menü haben als Oberbegriff der nichts auslöst, nur so halt z.B. Niederrhein, Westfalen etc. ... und dann soll bei einem Klick darauf das Menü erscheinen mit den Städten, die Listen bleiben da ja immer gleich ... >> Dies ist auch wohl weniger das Problem, ABER wie kann ich dann den verschiedenen Inhalt der Menüpunkte darstellen, der sich ja in vielen Komponenten unterscheiden kann ... Gibts da keine andere einfache und simple Methode statt der Visible-Eigenschaft? |
Re: Menü in Delphi realisieren
Vielleicht wäre in diesem Fall ein TabControl interessant.
|
Re: Menü in Delphi realisieren
Liste der Anhänge anzeigen (Anzahl: 1)
@mkinzler: Eher TPageControl ;-)
@Problemmacher: Wie wärs mit Frames? Ein Frame ist ein "Teil" einer Form, den du wie eine Form mit COntrols und natürlich Code bestücken kannst. Dann brauchst du z.B. einen Frame für deine Städte, und einen für was anderes. Da deine Ausführungen hier sehr unklar sind, mach ich kurz mal ne Demo fertig. |
Re: Menü in Delphi realisieren
Zitat:
|
Re: Menü in Delphi realisieren
Oh das ist sehr nett! Hab ja auch im ersten Posting geschrieben
das ich eine Art IFrame oder Include Lösung suche wie man sie von Websites kennt. Wusste nicht wie ich das anders ausdrücken soll. Brauch halt ein festes Menü und dann halt einen Bereich der universell je nach Menüpunkt angezeigt werden soll. Hierfür eignete sich die Visible-Eigenschaft allerdings nicht, da ich so bei jeder Menüklickprozedur unzählige Sachen ausblenden musste, um das gewünschte anzuzeigen ... |
Re: Menü in Delphi realisieren
Hallo,
das ist ganz einfach: Du definierst dir ein
Delphi-Quellcode:
und immer wenn du die frames wechselst, machst du
ActiveFrame: TFrame;
Delphi-Quellcode:
damit musst du pro Menüart immer nur einen frame definieren.
ActiveFrame.Hide;
ActiveFrame := NewFrame; |
Re: Menü in Delphi realisieren
@DGL-luke - Das mit dem Menü ist schon genau das was ich vor hatte,
jedoch weiß ich nicht ob ich mit der Einbindung der Inhalte so zu recht kommen werde. Wenn wir jetzt ein anderes Beispiel nehmen, z.B. ich möchte gern ein Programm schreiben worüber man auf zwei Spiele zugreifen kann ... über das Menü, ist ja jetzt so kein Problem denke ich mal ... Jedoch erscheint mir deine Demo zumindest so, als wäre sie an ein Schema gebunden. Sprich dort steht immer der Stadtame u.s.w., jedoch wollte ich gern inhaltsmäßig völlig unabhängige Seiten voneinander gestalten. Genau wie auf einer Website, dort ist der Inhalt auch immer anders und nicht nach dem gleichen Schema, so ist die Newssektion anders aufgebaut als die Impressums Seite ... Worum es mir also ging, ist folgendes: Ich mache wie gewohnt im Formular meine Komponenten u.s.w. für eine Seite fertig. Dann hab ich ja ein eigenständiges Programm bzw Projekt. Nun mache ich noch eins und hab also zwei Programme geschrieben, die verschieden platzierte Komponenten haben, andere Aufgaben u.s.w. ... nun wollte ich die halt durch das Menü benutzerfreundlicher zugänglich machen, damit nicht alles auf eine Formular-Seite gepackt wird. Entschuldigt falls ich mich unklar ausgedrückt habe, aber ist halt schwer zu erklären was machen zu wollen, was man selber nicht kann =)! Danke auf jeden Fall dafür, dass ihr euch bereits so viel Zeit genommen habt, um mir zu helfen! |
Re: Menü in Delphi realisieren
Jop.
Geh mal auf Datei|Neu|Frame. Dann hast du genau so einen Frame, den du mit einer "Maske" aus Komponenten ausstatten kannst. Wenn du wirklich total unterschiedliche Sachen willst, musst du halt für jedes einen einzelnen Frame machen. Das kannst du ja auch verschachteln! Also einen "Spiele"-Frame, und in diesen dann die Information über die anderen frames, sprich die einzelnen spiele. du musst halt dann im frame noch eine variable definieren, der du das gewünschte spiel zuweisen kannst. (Ich weiß ja nicht, obs dir aufggefallen ist, aber ich benutze hier immer die "Tag"-Eigenschaft. Das kannst du so beibehalten, du musst dann nur pro "Kategorie" ein OnCLick-Event implementieren - wäre zumidnest IMO das praktischste) |
Re: Menü in Delphi realisieren
Ok langsam hab ich es, nurnoch paar "doofe Fragen", weil
ich es noch nicht ganz verstanden hab. Muss man halt einmal richtig durchgemacht haben und dann versteht man das auch, aber beim ersten Mal ist es immer schwer, sorry ... Hab nun das Formularfenster(Unit1) und einen neuen Frame (Unit2) erstellt, nun habe ich ja zwei Fenster in Delphi. Nun meine Fragen ... > Wo kann ich im Hauptformularfenster (Unit1) bestimmen wo der Frame XY angezeigt werden soll? > Wie bzw. was schreibe ich in die Przedur des jeweiligen Menüpunktes, damit der jeweilige gewünschte Frame im Hauptformularfenster geöffnet wird. Danke =)! |
Re: Menü in Delphi realisieren
Hallo,
ich würde erstens den Frames sinnvolle Name geben :) dann zu deinen Fragen: - Stell am besten den "Align" des Frames auf alClient. Er wird dann da, wo er hineinkommt, alles ausfüllen. Wo er genau hinkomt, bestimmst du über die Eigenschaft "Parent". Die sollte eigentlich immer die selbe sein, und kann eine beliebige von TWinControl abgeleitete Komponente sein, z.B. ein TPanel. - Das siehst du in meiner Demo: "Frame.Show". Wie bereits gesagt, solltest du dir irgendwo merken, welcher frame zuvor aktiv war, damit du den verstecken kannst. |
Re: Menü in Delphi realisieren
Zitat:
geladen und der alte wäre dann doch nicht mehr sichtbar, oder? Falls nein, was wäre denn dann das Gegenteil von Frame.Show ... Frame.Delete /.Destroy? |
Re: Menü in Delphi realisieren
Hallo,
wenn du nur den zweiten auf sichtbar schaltest, dann wird der alte drunterstecken, und evtl. streiten sich die dann um den Platz da ^^ Deshalb solltest du den alten gleich wieder auf Nicht sichtbar schalten. Das geht entweder per "Visible := false" oder per "Hide". Zu deiner PN: Zitat:
Zitat:
wenn du dir meinen Code im OnFormCreate anschaust:
Delphi-Quellcode:
self ist hier die Form, das müsstest du nur durch "FramePanel" oder wie auch immer du dein panel nennen willst ersetzen.
Cityframe := TCityFrame.Create(self);
Cityframe.Parent := self; //das ist das wichtigste |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz