![]() |
Feststellen welches Menü item im submenü geklickt wurde
Wieder Menü!
In VB kann ich einen Submenü für jeden eintrag einen Index zuweisen.. und damit vergleichen welcher eintrag geklickt wurde.
Delphi-Quellcode:
wie geht das in Delphi ?
Private Sub mnuEffectes_Click(Index As Integer)
Select Case Index ... bal, bla. bla ... umstellen ist schwierig man kennt die meisten functionen noch nicht. gruss Emil |
Re: Feststellen welches Menü item im submenü geklickt wurde
Da ich mich mit VB net gut auskenne, bin ich mir net sicher ob das ist was du suchst, aber jeder Menu eintrag hat die eigenschaft TAG, die ist glaube ich was du suchst. Du musst den nur setzen, wird nicht automatisch gemacht
Thorben |
Re: Feststellen welches Menü item im submenü geklickt wurde
Zitat:
Kann man verwenden.. Nur wie komme ich jetzt an das submenuitem ? Hab da nix gefunden.
Delphi-Quellcode:
gibt mir ja nur den Tag vom Vismodule1 nicht aber die von deren Submenü
case Vismodule1.Items.Tag of ...
was muss dann aber nach Vismodule1 ... stehen ? gruss Emil |
Re: Feststellen welches Menü item im submenü geklickt wurde
Der Parameter Sender ist die Instanz des SubMenus, welches geklickt wurde. Vergleiche dies doch einfach mit deinem Submenu-Items der Form. Wenn der Vergleich stimmt, der war's dann.
Wenn du ganz allgemein auf das MenuItem zugreifen willst, dann mache einen typecast von Sender auf TMenuItem... |
Re: Feststellen welches Menü item im submenü geklickt wurde
Zitat:
Delphi-Quellcode:
Hab da noch ncihts eingetragen das ich es testen könnte..
procedure TVisForm.Vismodule1Click(Sender: TObject);
begin case Vismodule1.items[Vismodule1.MenuIndex].Tag of 0: ; 1: ; 2: ; 3: ; 4: ; 5: ; 6: ; end; end; Habe den Tag's die jeweiligen Indexe übergeben. gruss Emil |
Re: Feststellen welches Menü item im submenü geklickt wurde
Entweder über Sender und Instanzenvergleich:
Delphi-Quellcode:
Oder über den Tag:
Procedure TBlubbv.Click(Sender: TObject);
Begin If ( Sender = miMeinMenuItem1 ) Then ShowMessage('Das war miMeinMenuItem1') Else If ( Sender = miMeinMenuItem2 ) Then ShowMessage('Das war miMeinMenuItem2') Else If ( Sender = miMeinMenuItem3 ) Then ShowMessage('Das war miMeinMenuItem3') Else ShowMessage('Das war irgendwas anderes...'); End;
Delphi-Quellcode:
Procedure TBlubb.Click(Sender: TObject);
Begin If Sender Is TComponent Then Begin Case TComponent(Sender).Tag Of 1: ShowMessage('Tag = 1'); 2: ShowMessage('Tag = 2'); 3: ShowMessage('Tag = 3'); 4: ShowMessage('Tag = 4'); End; End; End; |
Re: Feststellen welches Menü item im submenü geklickt wurde
Habe das mal nachvollzogen
komme aber nicht auf das submenuitem
Delphi-Quellcode:
Er springt immer in 'Das war irgendwas anderes...'
procedure TVisForm.Vismodule1Click(Sender: TObject);
Begin If ( Sender = Spectrum1 ) Then ShowMessage('Das war Spectrum1') Else If ( Sender = VuBox1 ) Then ShowMessage('Das war VuBox1') Else If ( Sender = Peristalsis1 ) Then ShowMessage('Das war Peristalsis1') Else ShowMessage('Das war irgendwas anderes...'); end; Sobald ich mit der maus auf den eintrag Vismodule1 komme Ein klick Event kann ich dann nicht mehr auslösen. Auch nach den kommentieren dieser zeile komm ich niemals ins submenü .... Verstehe nicht das es so kompliziert ist an den eintrag eines Menüs zu gelangen Sorry das ich nochmal mit VB anfange.. Ich gebe im Designer einen Index für den Eintrag ein. Dann wird beim aufruf direkt ne sub angelegt wo ein Index mit übergeben wird.
Delphi-Quellcode:
Dann kann ich mit dem Index arbeiten ohne irgendwelche probleme
Private Sub mnuVis_Click(Index As Integer)
DoEvents Select Case Index Case 0, 1, 2, 3, 4 VisAll = False Case 5 VisAll = True End Select mnuVis(Index).Checked = True CurFlame = Index For Index = 0 To 5 If Index <> CurFlame Then mnuVis(Index).Checked = False End If Next Index If Index = 5 Then CurFlame = 4 End If SaveSetting EMPLAYER, "Visual", "CurFlame", CurFlame End Sub oder etwas anderes dafür zu initialisieren. gruss |
Re: Feststellen welches Menü item im submenü geklickt wurde
Ich kenne mich mit Delphi.NET zwar nicht aus, aber wieso weißt du nicht einfach für jedes SubMenu-Item den gleichen OnClick-Event zu?
In dem Event castest du den Sender einfach auf TMenuItem (oder wie das in Delphi.NET heisst) und schon hast du das geklickte Item.
Delphi-Quellcode:
Geht das nicht?
procedure TVisForm1.FooMenuItemClick (Sender: TObject);
begin ShowMessage ((Sender as TMenuItem).Caption); end; |
Re: Feststellen welches Menü item im submenü geklickt wurde
Zitat:
Aber das war sehr Hilfreich. Jetzt funktioniert auch diese Abfrage!
Delphi-Quellcode:
gruss Emil
procedure TVisForm.Vismodule1Click(Sender: TObject);
Begin If ( Sender = Spectrum1 ) Then ShowMessage('Das war Spectrum1') Else If ( Sender = VuBox1 ) Then ShowMessage('Das war VuBox1') Else If ( Sender = Peristalsis1 ) Then ShowMessage('Das war Peristalsis1') Else ShowMessage('Das war irgendwas anderes...'); end; |
Re: Feststellen welches Menü item im submenü geklickt wurde
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 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