Referenzen,Pointer und Cast



  • Hallo,
    ich habe mal wieder eine Frage zu dem berühmten Problem, welches ich noch nicht ganz beherrsche. Säntliche Formulare sind ja Objekte der Klasse TApplication. Zumnidest lassen sie sich über

    Application->Components[i]...
    

    ansprechen.
    Ich möchte diese Formulare nun an eine Metode übergeben. Die Methode solle alle übergebenen Formulare nach meinen Wünschen ändern. Vorab sollen allerdings alle Formulare gesucht und über eine for-Schleiche übergeben werden. Meine jetzige Methode erwartet eine Referenz auf eine TForm-Objekt.

    void SystemLangRename(TForm *pForm, AnsiString Language)
    // Sprache muss übergeben werden
    {
    	/*
    

    Ich möchte also sämtliche Formulare finden und diese an die Methode übergeben.
    mit

    SystemLangRename(Application->Components[i],"eng");
    

    funktionierte das ja nicht. Er übergibt nicht das richtige Objekt.
    Wie kann ich nun das Problem lösen? Kann mir jemand sogar einen Tip als Quelltext geben? Bin mit der Herachie nich ganz vertraut.

    Ich danke euch für eure Hilfe .



  • Ich vermute mal, du mußt dort nur den richtigen Index für i angeben, um das richtige Formular zu erreichen (wenn du alle Formulare erreichen willst, nimm' eine Schleife "for(i=0;i</*Anzahl der Forms*/;++i)...")



  • Components liefert dir alle Komponenten der Anwendung, hier musst du also vor der Übergabe an die Funktion nachschauen ob es ein TForm ist, z.B. mit ClassNameIs

    wenn du nur die Formulare willst, kannst du auch Screen->Forms[i] und Screen->FormCount verwenden



  • Danke ich probiere es gleich aus.


Anmelden zum Antworten