000
10.10.2006, 14:53 Uhr
~radian
Gast
|
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. javascript:insert_tag('
',1)
C++: |
//---------------------------------------------------------------------------
#include <vcl.h> #pragma hdrstop
#include "Objektsuche.h" #include "ObjectDebug.h" #include <XMLDoc.hpp> //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm2 *Form2;
#define __SHOWNAMES__
//--------------------------------------------------------------------------- // Einlesen der XML-Datei mit der Sprachen- und Objekliste // Suchalgorithmus zur Findung der Objektnamen AnsiString getName(AnsiString ObjName,AnsiString Sprache) { AnsiString BuCaption;
try { _di_IXMLDocument LangXML = LoadXMLDocument("lang.xml"); _di_IXMLNodeList NodeList = LangXML->DocumentElement->ChildNodes; _di_IXMLNode ObjNameNode = NodeList->FindNode(ObjName); BuCaption = ObjNameNode->ChildNodes->FindNode(Sprache)->NodeValue;
return BuCaption; } catch (...) { try { throw Exception(""); } catch (Exception &exception) { Application->ShowException(&exception); } }
return 0; }
//--------------------------------------------------------------------------- __fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) { // Ausgabe der Anzahl der Objekte Button_Para->Caption = Form2->ComponentCount; } //--------------------------------------------------------------------------- void __fastcall TForm2::Button_BerPrClick(TObject *Sender) { // Variablen zum Zwischenspeichern der Caption und des Objektnamens AnsiString ObjName[50]; AnsiString CaptionName[50]; AnsiString Sprache = "eng"; int NumberMenu; int NumberItem; int zahl = 0;
#ifdef __SHOWNAMES__ FormObjDebug->Show(); FormObjDebug->LB1->Clear(); #endif
for (int i=0; i< Form2->ComponentCount;i++)
{ ObjName[i] = Form2->Components[i]->GetNamePath();
TComponent *comp = Components[i];
#ifdef __SHOWNAMES__ FormObjDebug->LB1->Items->Add( "Name: " + ObjName[i] + " Class: " + Components[i]->ClassName()); #endif
if (Components[i]->ClassNameIs("TLabel")) { CaptionName[i] = getName(ObjName[i], Sprache); TLabel *label = dynamic_cast<TLabel *>(comp); if(label != NULL) { label->Caption = CaptionName[i]; } } if (Components[i]->ClassNameIs("TButton")) { CaptionName[i] = getName(ObjName[i], Sprache); TButton *button = dynamic_cast<TButton *>(comp); if(button != NULL) { button->Caption = CaptionName[i]; }
} if (Components[i]-ClassNameIs("TMenuItem")) {
if (Components[i]->ClassNameIs("TMainMenu")) {
int zahl; NumberMenu = MainMenu1->Items->Count; Form2->MainMenu1->Items->Caption = "Test";
//zahl = Form2->MainMenu1->ComponentCount; //MainMenu1->Items->Caption = "Test";
} } } } //-------------------------
|
|