Label - Tag Probleme



  • Hallo,
    mit folgender Routine möchte ich die Feldnamen einer Tabelle übergeben. Obwohl ich Tag-Werte korrekt eingerichtet habe, werden diese nicht erkannt. Wer sagt mir, wo der Fehler liegt, bzw.was ich falsch mache.
    Danke schon jetzt für eure Hilfe.
    Gruß Egbert

    void __fastcall TFKDB::TabKopfInDsAnzeige(TObject *Sender,TStringGrid *Grid)
    {
       String s = "...............";
    
       String str;
       for (int x=1; x<20; x++)
       {
         str = Grid->Cells[x][0]+s;
         if ( ((TLabel *)Sender)->Tag  == x )
         {
           ((TLabel *)Sender)->Caption = str.SubString(1,15)+" :";
         }
       }
    }
    


  • ist den die übergabe vom "TObject *Sender" korrekt?



  • Hallo

    aus dem geposteten Code läßt sich kein Problem erkennen. Debugge doch mal und las dir die Werte von *((TLabel )Sender)->Tag und x anzeigen.
    Außerdem solltest du statt den C-Style Casts lieber static_cast verwenden.

    bis bald
    akari



  • Hallo,
    danke für die prompten Antworten. Möglicherweise war "TObject *Sender" die Ursache, denn der Aufruf erfolgte aus dem Formular heraus.
    Habe jetzt die Routine folgendermaßen umgestellt.

    void __fastcall TFKDB::TabKopfInDsAnzeige(TStringGrid *Grid)
    {
       String s = "...............";
       TLabel *myLabel;
    
       String str;
       for (int x=1; x<21; x++)
       {
         str = Grid->Cells[x][0]+s;
         myLabel=dynamic_cast<TLabel*>(FindComponent("Label"+IntToStr(x)));
         myLabel->Caption = str.SubString(1,15)+":";
       }
    }
    //-------------------------------------------------------------------------
    

    jetzt klappt es so, wie gewollt.
    Danke und Gruß Egbert


Anmelden zum Antworten