Captionproblem TMainMenu

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Captionproblem TMainMenu

    Hallo,
    habe ein neues Problem.
    Ich möchte die Anzahl der Elemente und der dazugehörigen Unterelemente herausbekommen um sie später neu zu benennen. Dazu soll mir die Indexzahl diese Objeketes behilflich sein. In einer XML-Datei wird der Name des Objekts überprüft und der Wert der Caption anbgefragt.
    Mein Problem ist, dass ich nicht an die Indexzahl der Einträge in TMainMenu herankomme oder die Eintrage umbennen kann. Ich füge hier mal meinen Quelltext ein.


    Quellcode

    1. #include <vcl.h>
    2. #pragma hdrstop
    3. #include "Objektsuche.h"
    4. #include "ObjectDebug.h"
    5. #include <XMLDoc.hpp>
    6. //---------------------------------------------------------------------------
    7. #pragma package(smart_init)
    8. #pragma resource "*.dfm"
    9. TForm2 *Form2;
    10. #define __SHOWNAMES__
    11. //---------------------------------------------------------------------------
    12. // Einlesen der XML-Datei mit der Sprachen- und Objekliste
    13. // Suchalgorithmus zur Findung der Objektnamen
    14. AnsiString getName(AnsiString ObjName,AnsiString Sprache)
    15. {
    16. AnsiString BuCaption;
    17. try
    18. {
    19. _di_IXMLDocument LangXML = LoadXMLDocument("lang.xml");
    20. _di_IXMLNodeList NodeList = LangXML->DocumentElement->ChildNodes;
    21. _di_IXMLNode ObjNameNode = NodeList->FindNode(ObjName);
    22. BuCaption = ObjNameNode->ChildNodes->FindNode(Sprache)->NodeValue;
    23. return BuCaption;
    24. }
    25. catch (...)
    26. {
    27. try
    28. {
    29. throw Exception("");
    30. }
    31. catch (Exception &exception)
    32. {
    33. Application->ShowException(&exception);
    34. }
    35. }
    36. return 0;
    37. }
    38. //---------------------------------------------------------------------------
    39. __fastcall TForm2::TForm2(TComponent* Owner)
    40. : TForm(Owner)
    41. {
    42. // Ausgabe der Anzahl der Objekte
    43. Button_Para->Caption = Form2->ComponentCount;
    44. }
    45. //---------------------------------------------------------------------------
    46. void __fastcall TForm2::Button_BerPrClick(TObject *Sender)
    47. {
    48. // Variablen zum Zwischenspeichern der Caption und des Objektnamens
    49. AnsiString ObjName[50];
    50. AnsiString CaptionName[50];
    51. AnsiString Sprache = "eng";
    52. int NumberMenu;
    53. int NumberItem;
    54. int zahl = 0;
    55. #ifdef __SHOWNAMES__
    56. FormObjDebug->Show();
    57. FormObjDebug->LB1->Clear();
    58. #endif
    59. for (int i=0; i< Form2->ComponentCount;i++)
    60. {
    61. ObjName[i] = Form2->Components[i]->GetNamePath();
    62. TComponent *comp = Components[i];
    63. #ifdef __SHOWNAMES__
    64. FormObjDebug->LB1->Items->Add( "Name: " + ObjName[i] + " Class: " + Components[i]->ClassName());
    65. #endif
    66. if (Components[i]->ClassNameIs("TLabel"))
    67. {
    68. CaptionName[i] = getName(ObjName[i], Sprache);
    69. TLabel *label = dynamic_cast<TLabel *>(comp);
    70. if(label != NULL)
    71. {
    72. label->Caption = CaptionName[i];
    73. }
    74. }
    75. if (Components[i]->ClassNameIs("TButton"))
    76. {
    77. CaptionName[i] = getName(ObjName[i], Sprache);
    78. TButton *button = dynamic_cast<TButton *>(comp);
    79. if(button != NULL)
    80. {
    81. button->Caption = CaptionName[i];
    82. }
    83. }
    84. if (Components[i]-ClassNameIs("TMenuItem"))
    85. {
    86. if (Components[i]->ClassNameIs("TMainMenu"))
    87. {
    88. int zahl;
    89. NumberMenu = MainMenu1->Items->Count;
    90. Form2->MainMenu1->Items->Caption = "Test";
    91. //zahl = Form2->MainMenu1->ComponentCount;
    92. //MainMenu1->Items->Caption = "Test";
    93. }
    94. }
    95. }
    96. }
    Alles anzeigen