Announcement

Collapse
No announcement yet.

Bug im C++ Builder 4.0 ?

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

  • Bug im C++ Builder 4.0 ?

    <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>Hallo, ich hab in meinem BCB4 - Projekt eine ActionList, einen
    TSpeedButton::OkButton und ein PopupMenü in dem die
    verschiedenen Aktionen aufgelistet sind. Jeder Menüpunkt ist mit
    TForm1::ActionChangeExecute verbunden, dessen Code gleich folgt.
    Funktioniert alles einwandfrei, lediglich beim ersten Aufruf nach
    dem Programmstart ist der Parameter TObjekt *Sender nicht mein
    TMenuItem ! T-&gt;Caption ist NULL, T-&gt;Tag ist 0,
    T-&gt;Checked=true; verändert irgendetwas unbekanntes. Ist das
    ein Bug oder ein Feature ? Was kann ich tun, um die gewünschte
    Wirkung schon beim ersten Aufruf zu erreichen ? Ansonsten ist es
    ja ein toller Fortschritt mit der ActionList, und daß man das
    Popupmenu zur Laufzeit ändern kann (Checked). Das war wohl ein
    Bug in Version 1 ? Danke - Günther</p>

    <pre>
    void __fastcall TForm1::ActionChangeExecute(TObject *Sender)
    {
    TMenuItem *T=(TMenuItem *)Sender;
    for(int i=0; i&lt;OkPopupMenu-&gt;Items-&gt;Count; i++)
    OkPopupMenu-&gt;Items-&gt;Items[i]-&gt;Checked=false;
    T-&gt;Checked=true;
    switch(T-&gt;Tag)
    {
    case 0:OkButton-&gt;Action=TechnikCheck; break;
    case 1:OkButton-&gt;Action=TiffPrint; break;
    }
    }
    </pre>
    </body>
    </html>
    Günther

  • #2
    <p>Beim Verwenden einer ActionList werden nicht die einzelnen auslösenden
    Komponenten als Sender übergeben, sonder der Action-Item.</p>
    <p>Tschau, Jörg</p>
    <p> TAction *t = dynamic_cast&lt;TAction *>(Sender);<br>
    if (t)<br>
    &nbsp; ShowMessage(t-&gt;Caption);<br>
    else<br>
    &nbsp; ShowMessage("kein TAction");<br>
    </p&gt

    Comment


    • #3
      Hallo Jörg, das Problem liegt nicht an der ActionList, sondern beim PopupMenu. Dieses ist (rein zufällig ?) einem Button zugeordnet, und nach einer Menüauswahl soll die Action beim ButtonClick manipuliert werden. Als Sender wird ein TMenuItem übergeben, nur beim ERSTEN Aufruf kommt Mist dabei raus ! Trotzdem Danke - Günthe
      Günther

      Comment


      • #4
        <p>Hallo Günther,</p>
        <p>worauf ich hinweisen wollte, war die Verwendung von dynamic_cast, denn dein
        hartes Casten ist ziemlich gefährlich!</p>
        <p>Tschau, Jörg</p&gt

        Comment


        • #5
          Hallo Jörg, dynamic_cast kannte ich noch nicht. Es funktioniert, Super, Danke ! Also doch kein Bug. - Günthe
          Günther

          Comment

          Working...
          X