2012-02-16 1 views
0

У меня есть 2 tframes и кнопка добавления. Я пытаюсь добавить один tframe на другой, когда кнопка нажата. но для моей причины мой код не может работать. он не добавляет фрейм, как это предполагается. ошибок нет или работает, он компилируется и запускается, но когда я нажимаю кнопку, он ничего не делает. Я получил его для работы, когда я добавил tframe в scrollbox, и все, что я сделал, это изменение местоположения для tframe, которое нужно добавить.добавление Tframe к другому Tframe во время выполнения

код TFrame2

void __fastcall TFrame2::AddFrame() 
{ 
    int temp = 0; 
    TFrame1* NewFrame1 = new TFrame1(this); 
    NewFrame1 ->Parent=this; 

    TComponentEnumerator * ParentEnum = GetEnumerator(); 

    while(ParentEnum->MoveNext()) 
    { 
     temp++; 
    } 

    NewFrame1 ->SetIndex(temp); 
    NewFrame1 ->Name = "Frame" + IntToStr(temp); 
    NewFrame1 ->Top = (NewFrame1 ->Height) * (temp); 
} 

это код я использую для самого TFrame1

void __fastcall TFrame1 ::SetIndex(int temp) 
{ 
    this->temp= temp; 
} 

int __fastcall TFrame1 ::GetIndex() 
{ 
    return this->temp; 
} 

лил Б.Г. информация: причина я должен добавить TFrame к другому TFrame, так я могу добавьте группу компонентов в другую группу компонентов, я не знал другого способа сделать это. позже я добавлю tframe2 в основную форму.

+0

Вы должны быть более конкретными. «мой код не может работать» дает нам абсолютно ничего, чтобы продолжать. Когда что-то не работает, вам нужно быть конкретным о том, как они не работают, включая любые конкретные сообщения об ошибках, которые вы получаете. Пожалуйста, помните, что мы не можем читать ваш ум или ваш экран отсюда, поэтому единственная информация, которую мы имеем, это то, что вы даете нам в своем вопросе. –

+0

BTW, 'TFrame1 * NewFrame1 = новый TFrame1 (TFrame2);' неправильно. Измените переданный параметр ('Владелец') с' TFrame2' на 'this'. 'TFrame2' - это тип, и вместо этого вам нужно передать указатель на ссылку. –

+0

Я добавил более подробную информацию, чтобы код не работал. он просто запускается без ошибок, но tframe не добавляется. Я попробовал «это» вместо TFrame2, то же самое, код запускается, но o tframe добавляется, когда я нажимаю кнопку – livelaughlove

ответ

0

С учетом кода, который вы указали, единственное, что может быть неправильным, - это установить свойство Top дочернего фрейма в значение, превышающее свойство его родительского фрейма , чтобы вы не увидели дочерний кадр появляется на экране, даже если он существует в памяти.

+0

. Я дважды проверял все, и это было не так, но все равно это не сработает. Я не совсем понимаю, почему. Я просто попытаюсь сделать это по-другому. спасибо, хотя за ваш вклад. – livelaughlove

+0

Я наконец выяснил, что было не так, оставив это в стороне на некоторое время. это не имело никакого отношения к моему коду ... это была просто ошибка C++ Builder. каждый раз, когда я вхожу в дизайн, чтобы внести коррективы, мне нужно вернуться к моему коду и прокомментировать материал winproc, сохранить его, затем раскомментировать материал winproc и снова сохранить его, а затем он будет работать. я не совсем уверен, но это решает проблему. – livelaughlove

+0

На какую ошибку вы ссылаетесь? Мне никогда не приходилось делать то, что вы описали. –

 Смежные вопросы

  • Нет связанных вопросов^_^