Announcement

Collapse
No announcement yet.

MenuItem eine Aktion zuweisen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MenuItem eine Aktion zuweisen

    Hallo
    folgender Code:
    TMenuItem *NewItem = new TMenuItem(Datei1);
    wird zur Laufzeit ausgeführt. Wie kann ich diesem Item eine Aktion zufügen???
    Danke

  • #2
    Ob dieses Datei1 in der Klammer nicht besser NULL heißen sollte kann ich nicht absolut sicher sagen. Ansonsten:

    NewItem->Action=wasweisich
    Günther

    Comment


    • #3
      Hallo
      Datei1 ist das Menü, zu dem es hinzugefügt wird
      das wasweisich brauche ich. Irgendeine Beispielaktion z.B. RichEdit1->Lines->LoadFromFile(blabla). Wenn ich das nämlich hinschreibe, erscheint die Fehlermeldung "Nicht TAction format" oder so. Wie kann ich eine TAction dekalrieren???

      Nochmal dank

      Comment


      • #4
        Na klar, Du mußt in TAction eine Action definieren und diese dann zuweisen. Der Parameter ist immet TObject * Sender und NICHT blabla. Also:

        <pre>
        TForm1::MeineAction(TObject *Sender)
        {
        RichEdit1->Lines->LoadFromFile(blabla).
        }
        </pre>

        Wenn der Dateiname Variabel sein soll, sind andere Ideen gefragt
        Günther

        Comment


        • #5
          Es ist mir fast schon peinlich aber irgendwie geht das nicht:

          void __fastcall TForm1::Opendings(TObject *Sender) {
          RichEdit1->Lines->LoadFromFile("C:\\opened.txt");
          }

          for-schleife {
          TAction *doit = new TAction(this);
          doit = Opendings(Sender);

          TMenuItem *NewItem = new TMenuItem(Datei1);
          NewItem->Caption = data[z];
          NewItem->Action = doit;
          Datei1->Insert(8, NewItem);
          }

          Fehler: Kein zulässiger Typ

          Vielen, vielen Dan

          Comment


          • #6
            <html>

            <head>
            <meta http-equiv="Content-Type"
            content="text/html; charset=iso-8859-1">
            <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
            <title>Normale Seite ohne Titel</title>
            </head>

            <body bgcolor="#FFFFFF">

            <p>Ob es mit TAction geht, weiß ich nicht. Aber mit OnClick auf
            jeden Fall. </p>

            <pre>void __fastcall TForm1::MenueitemClick(TObject *Sender)
            {
            TMenuItem *T=dynamic_cast <TMenuItem *>(Sender);
            RichEdit1-&gt;Lines-&gt;LoadFromFile(T-&gt;Caption);
            // oder alternativ: RichEdit1-&gt;Lines-&gt;LoadFromFile(Data[T-&gt;Tag]);
            }</pre>

            <p>&nbsp;</p>

            <pre>// und dann irgendwo in einer Initialisierungsroutine:
            for(int z=0; z&lt;wasweisich; z++)
            {
            TMenuItem *T=new TMenuItem(NULL); // meiner Meinung nach ist NULL immer noch richtig :-)
            T-&gt;Caption=data[z];
            T-&gt;Tag=z;
            T-&gt;Visible=true;
            T-&gt;OnClick=MenueitemClick;
            Datei1-&gt;Insert(z+5,T);
            }</pre>
            </body>
            </html&gt
            Günther

            Comment


            • #7
              Vielen Dank für die Hilfe. Die gleiche Lösung habe ich gestern abend 10.30 Uhr gefunden

              Comment

              Working...
              X