Controls-Puzzle



  • Hallo,

    hab echt lange überlegt, aber komme nicht auf (...)

    void myFontSet()
    {
      register int i,j;
      for(i=0; i<frmMain->ControlCount; i++)
      {
        if (frmMain->Controls[i]->ClassNameIs("TPanel"))
        {
          for(j=0; j<((TPanel*)frmMain->Controls[i])->ControlCount; j++)
          {
            if (((TPanel*)frmMain->Controls[i])->Controls[j]->ClassNameIs("TEdit"))
            {
              (...)->Font->Name = myFont;
            }
          }
        }
      }
    }
    

    Vielleicht gibts aber auch eine viel einfachere Lösung? 😕

    Danke für die Mitarbeit

    danny



  • Ja, schönes Puzzle. Bin aber noch nicht drauf gekommen, wie man die Puzzleteile deiner Frage zusammensetzt.



  • Meine Frage:

    Wie weise ich allen Edit-Feldern die sich auf Panels befinden
    eine andere Schriftart zu?



  • Hi,
    einfach alle Komonenten durchlaufen! Überprüfen ob Parent ein Panel ist und andere Schrift setzten!

    Alexander Sulfrian



  • Vielleicht so :

    [cpp]
    void myFontSet()
    {
    register int i,j;
    for(i=0; i<frmMain->ControlCount; i++)
    {
    if (frmMain->Controls*->ClassNameIs("TPanel"))
    {
    for(j=0; j<((TPanel*)frmMain->Controls[i])->ControlCount; j++)
    {
    if (((TPanel*)frmMain->Controls[i])->Controls[j]->ClassNameIs("TEdit"))
    {
    [i]
    TEdit* Edit = (TEdit*)((TPanel*)frmMain->Controls[i])->Controls[j];
    Edit->Font->Name = myFont;
    *
    }
    }
    }
    }
    }
    [/cpp]
    Einfach ein Pointer des Typs TEdit auf das gefundene Control setzen, dann kannst Du' handeln und den Font verbiegen.
    Viel Erfolg
    Hans


Anmelden zum Antworten