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ß Egbertvoid __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