Объяснить 2 строки

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем prikolist, 13 апр 2009.

  1. prikolist

    prikolist Гость

    Здравствуйте программисты! Объясните пожалуйста вот эти 2 строки,что они делают:
    Меня интересует (FindChildControl("Edit"+IntToStr(i)));

    Код (Text):
    TEdit *b = dynamic_cast<TEdit*>(FindChildControl("Edit"+IntToStr(i)));
    if(b->Text.Length()==0)
    из этого кода:

    Код (Text):
    for(int i=1;i<6;i++)
    {
    TEdit *b = dynamic_cast<TEdit*>(FindChildControl("Edit"+IntToStr(i)));
    if(b->Text.Length()==0)
    {
    ShowMessage("Введите значение");
    b->SetFocus();
    return;
    }
    }
     
  2. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Находит на форме дочерние Edit-ы по имени и возвращает указатель на них
     
  3. etc

    etc Гость

    за такой год - ецих с гвоздями, пожизненный.
     
  4. prikolist

    prikolist Гость

    Я напишу, как я понял,если что не так,поправьте пожалуйста. Вначале указателю b, который указывает на класс TEdit(только не знаю зачем это делать),ему присваивается операцией приведения типов dynamic_cast какой-то класс-указатель на метод find - искать, child - что-то дочернее(тоже не знаю зачем),какой-то контрол(Не знаю что такое Control), а выражение
    Код (Text):
    "Edit"+IntToStr(i))
    , наверное ищет в каком-то контроле,не знаю что за контрол по-моему выражение "Edit" все эдиты, с первого по пятый.
    Если,я что не так выразился,поправьте меня пожалуйста.Заранне благодарен за ответ.
     
  5. etc

    etc Гость

    ецих с гвоздями.
     
  6. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Код (Text):
    TEdit *b = dynamic_cast<TEdit*>(FindChildControl("Edit"+IntToStr(i)));
    Данный код эквивалентен следующему:
    Код (Text):
    AnsiString NumStr = IntToStr(i);
    AnsiString EditName = "Edit" + NumStr;
    TControl* pEditObject = FindChildControl(EditName);
    TEdit* b = dynamic_cast<TEdit*>(pEditObject );
    Какая из этих строк вам не понятна?
     
  7. prikolist

    prikolist Гость

    Мне не ясно в моём коде,зачем присваивать ......к TEdit *b =,выражение

    Код (Text):
    dynamic_cast<TEdit*>(FindChildControl("Edit"+IntToStr(i)));
    что даёт это присвоение указателю,извините,если может мои вопросы покажутся глупыми.

    В вашем коде,не ясно pEditObject - это что такое?
    И вот эта строка

    Код (Text):
    TControl* pEditObject = FindChildControl(EditName);(Желательно полностью расшифровать,чтоб нормально понять)
    И последний вопрос. В этом выражении FindChildControl("Edit"+IntToStr(i)))

    Правильно ли я понял,Что Edit в кавычках,это поиск всех Эдитов, на форме,а +IntToStr(i)) - что даёт ?

    ответьте пожалуйста на все вопросы,только подробнее,буду очень благодарен за ответ.
     
  8. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Откройте хелп
    Указатель на найденный объект компонента Edit
    Преобразует целое число в строку
    В цикле будут имена эдитов от Edit1 до Edit6
    Ищет компонет на форме по имени, т.е. поиск эдита
    указатель b - это указатель на найденный эдит, с которым вы дальше работаете
    Подробнее в хелпе
     
Загрузка...

Поделиться этой страницей