AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Feststellen welches Menü item im submenü geklickt wurde
Thema durchsuchen
Ansicht
Themen-Optionen

Feststellen welches Menü item im submenü geklickt wurde

Ein Thema von EWeiss · begonnen am 10. Mär 2007 · letzter Beitrag vom 10. Mär 2007
Antwort Antwort
Seite 2 von 2     12   
EWeiss
(Gast)

n/a Beiträge
 
#11

Re: Feststellen welches Menü item im submenü geklickt wurde

  Alt 10. Mär 2007, 16:31
Zitat von Muetze1:
Zitat von EWeiss:
Hi kenn mich in Delphi.NET auch nicht aus
Du hast aber bei deinem ersten Beitrag angegeben, dass du mit .NET arbeitest...

Zitat von EWeiss:
Jetzt funktioniert auch diese Abfrage!
Und was hast du bezüglich dem Versuch zuvor verändert?
Sorry hab da wohl die falsche Sprache angegeben sollte natürlich Delphi sein
Habe jetzt alle OnClick ereignisse auf die sub gelegt.

Delphi-Quellcode:
procedure TVisForm.ModuleClick(Sender: TObject);
Var
 i : Integer;
 mi: TMenuItem;
 CurrentItem: Integer;

begin
   mi := Sender as TMenuItem;
   CurrentItem:= mi.tag;

   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...');

  for i := 0 to 6 do
        If i = CurrentItem Then
            mi.Checked := true
        else
            mi.Checked := false;

end;
Das funktioniert zwar ..
Aber wie kann ich jetzt außerhalb der form den Menüeintrag abfragen welcher angeklickt wurde ?
Wenn ich immer noch nicht weiss wie ich an die submenuitems gelange.

Auch wird mir so der eintrag nicht als checked makiert ...

gruss Emil
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#12

Re: Feststellen welches Menü item im submenü geklickt wurde

  Alt 10. Mär 2007, 16:35
procedure TVisForm.ModuleClick(Sender: TObject);
Var
i : Integer;
mi: TMenuItem;
CurrentItem: Integer;

begin
mi := Sender as TMenuItem;
CurrentItem:= mi.tag;

If ( Sender = Spectrum1 ) Then
Spectrum1.checked:= not spectrum.checked usw. usw.


[delphi]

Ich hoffe das hilft dir
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#13

Re: Feststellen welches Menü item im submenü geklickt wurde

  Alt 10. Mär 2007, 16:40
Zitat von matashen:
procedure TVisForm.ModuleClick(Sender: TObject);
Var
i : Integer;
mi: TMenuItem;
CurrentItem: Integer;

begin
mi := Sender as TMenuItem;
CurrentItem:= mi.tag;

If ( Sender = Spectrum1 ) Then
Spectrum1.checked:= not spectrum.checked usw. usw.


[delphi]

Ich hoffe das hilft dir
Verstehe ich nicht!
mi ist doch als TMenuItem declariert findet also den richtigen eintrag (Index) eingestellt im Tag des menüItem

Warum schaltet mi dann diesen eintrag nicht auf true
Der Tag wird doch auch erkannt!

gruss Emil
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#14

Re: Feststellen welches Menü item im submenü geklickt wurde

  Alt 10. Mär 2007, 16:43
Der Tag ist eine Eigenschaft des Objects Submenuitem von Typ Integer(Glaub ich..).
Das Checked ist eine Eigenschaft des Objects Submenuitem von Typ Boolean(weis ich!).
Wenn du also den Tag einen Wert zuweist hat das noch lang nix mit der Eigenschaft Checked zu tun !

Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#15

Re: Feststellen welches Menü item im submenü geklickt wurde

  Alt 10. Mär 2007, 16:48
Zitat von matashen:
Der Tag ist eine Eigenschaft des Objects Submenuitem von Typ Integer(Glaub ich..).
Das Checked ist eine Eigenschaft des Objects Submenuitem von Typ Boolean(weis ich!).
Wenn du also den Tag einen Wert zuweist hat das noch lang nix mit der Eigenschaft Checked zu tun !

Gruß Matthias
Korrekt!

Ich rede aber nicht von bool, integer oder Tag .. sorry
sondern davon das mi als MenuItem declariert ist.

Also theoretisch alle eigenschaften des MenuItem besitzen muss!
Sonst könnte ich ja den Tag auch nicht abfragen oder ?

Warum wird dann wenn ich mi.checked := True angebe
der Menüeintrag nicht auf true gesetzt ? Wenn mi den Menüeintrag repräsentiert ?

begin
EDIT:

Dann brauche ich mi auch nicht declarieren da es in dem Fall unsinnig wäre
und die Tag eigenschaften bringen dann auch nichts.

was ich verstehe das er unterumständen die eigenschaften der anderen menüs nicht erkennt
da er hier ja nur das aktuelle angeklickte Menü erkennt.
Aber das muss mindestens auf True gesetzt werden können.
end EDIT

gruss Emil
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#16

Re: Feststellen welches Menü item im submenü geklickt wurde

  Alt 10. Mär 2007, 16:55
Bist du schon mal mit dem debugger durchegegangen was der Code macht.

Habs mal mit dienem Code bei mir versucht nachzustellen. Klappt wunderbar.
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#17

Re: Feststellen welches Menü item im submenü geklickt wurde

  Alt 10. Mär 2007, 16:58
Zitat von matashen:
Bist du schon mal mit dem debugger durchegegangen was der Code macht.

Habs mal mit dienem Code bei mir versucht nachzustellen. Klappt wunderbar.
Was mein Schnipsel ?
Ja er geht auch durch ohne ärger.
Schaltet aber den eintrag nicht auf true = checked

Keine ahnung warum.

EDIT:
Die MessageBox hat das problem verursacht.

Aber funktionieren tut das ganze immer noch nicht.
Habe immer noch nicht die info wie ich an die submenuitems gelange
Es gibt nix im inet keine Seite hat ein Sample wo man sich das mal anschauen kann.

Auch hier gibt es nix
Wär mal was für die codelib

gruss
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#18

Re: Feststellen welches Menü item im submenü geklickt wurde

  Alt 10. Mär 2007, 17:23
mein letzter Versuch.(Mein Badewasser wird grad kalt !


hab dir schnell was zusammengebastelt und angehängt.

Vielleicht kannst du damit dein Problem finden
Angehängte Dateien
Dateityp: zip testprojekt_194.zip (149,0 KB, 3x aufgerufen)
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#19

Re: Feststellen welches Menü item im submenü geklickt wurde

  Alt 10. Mär 2007, 17:47
Zitat von matashen:
mein letzter Versuch.(Mein Badewasser wird grad kalt !


hab dir schnell was zusammengebastelt und angehängt.

Vielleicht kannst du damit dein Problem finden
Danke für deine mühe

Ich habe es jetzt so gelößt.

Delphi-Quellcode:
procedure TVisForm.ModuleClick(Sender: TObject);
Var
 IntI : Integer;
 mi : TMenuItem;
 CurrentItem : Integer;

begin
   mi := Sender as TMenuItem;
   CurrentItem := mi.tag;
   mi.checked := True;

  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 If ( Sender = Polygone1 ) Then
    ShowMessage('Das war Polygone')
  Else If ( Sender = CompactDisc1 ) Then
    ShowMessage('Das war CompactDisc')
  Else If ( Sender = Plasma1 ) Then
    ShowMessage('Das war Plasma')
  Else If ( Sender = Water1 ) Then
    ShowMessage('Das war Water');

    for IntI := 0 to 6 do
      if IntI <> CurrentItem then
      case IntI of
      0:
        Spectrum1.checked := False;
      1:
        VuBox1.checked := False;
      2:
        Peristalsis1.checked := False;
      3:
        Polygone1.checked := False;
      4:
        CompactDisc1.checked := False;
      5:
        Plasma1.checked := False;
      6:
        Water1.checked := False;
      end;
end;
Mein problem bleibt aber bestehen.

Innerhalb der form ist das nun geklärt aber ich muss das submenuItem auch
außerhalb der Form erkennen können welcher index(eintrag) nun gewählt ist.
Da ich hier eine case anweisung einbauen muss welche daraufhin das
im Menu gewählte Visualisierungs-Modul ausführt.

Geht das generell oder muss ich mir da externe variablen einrichten ?

gruss
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#20

Re: Feststellen welches Menü item im submenü geklickt wurde

  Alt 10. Mär 2007, 18:19
So bin wieder sauber


Wenn du das mit TVisForm.Spectrum1.checked prüfst mußt du nichts eintragen. Du kannst von jeder Form der Anwendung aus auf jede andere Form zugreifen. Du darfst nur nicht vergessen die entsprechende Zielform anzugeben, sonst geht die aktuelle form von self.spectrum1.checked aus und das gibts dann ja nicht.

Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 13:21 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