Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как обратиться к компонентам на динамически созданных формах

12K
07 декабря 2005 года
kortun
18 / / 21.11.2005
Дано:
Есть форма, на ней PageControl
на ней созданный динамически TabSheet и Memo

как мне из мемо, получить информацию, например
количество строк, весь текст сохранить.

вот кусок создания

TTabSheet *massiv_sheet[5];
TMemo *massiv_memo[5];

for(int i=0;i<5;i++){
massiv_sheet = new TTabSheet (pctrNoteBook);
massiv_sheet->PageControl = pctrNoteBook;
massiv_sheet->Name = "Note"+IntToStr(i);
massiv_sheet->Caption = "Запись "+IntToStr(i);
massiv_sheet->TabVisible=true;
massiv_sheet->Enabled=true;

massiv_memo = new TMemo(this->Handle);
massiv_memo->Name = "Memo"+IntToStr(i);
massiv_memo->Parent = massiv_sheet;
massiv_memo->Align = alClient;
pctrNoteBook->ActivePage=massiv_sheet[0];
259
07 декабря 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by kortun
Дано:
Есть форма, на ней PageControl
на ней созданный динамически TabSheet и Memo

как мне из мемо, получить информацию, например
количество строк, весь текст сохранить.

вот кусок создания

TTabSheet *massiv_sheet[5];
TMemo *massiv_memo[5];

for(int i=0;i<5;i++){
massiv_sheet = new TTabSheet (pctrNoteBook);
massiv_sheet->PageControl = pctrNoteBook;
massiv_sheet->Name = "Note"+IntToStr(i);
massiv_sheet->Caption = "Запись "+IntToStr(i);
massiv_sheet->TabVisible=true;
massiv_sheet->Enabled=true;

massiv_memo = new TMemo(this->Handle);
massiv_memo->Name = "Memo"+IntToStr(i);
massiv_memo->Parent = massiv_sheet;
massiv_memo->Align = alClient;
pctrNoteBook->ActivePage=massiv_sheet[0];


 
Код:
TMemo* myMemo;
myMemo = massiv_memo[0];
myMemo->Lines->Append("Добавили эту строку в 1 memo");
12K
07 декабря 2005 года
kortun
18 / / 21.11.2005
Цитата:
Originally posted by AlexandrVSmirno
 
Код:
TMemo* myMemo;
myMemo = massiv_memo[0];
myMemo->Lines->Append("Добавили эту строку в 1 memo");



А если мне их 50 или 100 надо будет???

259
07 декабря 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by kortun
А если мне их 50 или 100 надо будет???


Ну так какая разница? А вообще каждая форма имеет массив, в котором хранятся указатели на все компоненты. Form1->Controls и Form1->ControlCount. При создании динамических компонент, чтобы правильно использовать эти возможность необходимо вызывать метод Form1->InsertControl(TContorl*) для каждого динамически созданного объекта.
Например:

 
Код:
int I;
  TControl *ChildControl;

  for (I = 0; I < Form1->ControlCount; I++)
  {
    ChildControl = Form1->Controls;
//Дальше делаем что нужно
  }
246
07 декабря 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by AlexandrVSmirno
Ну так какая разница? А вообще каждая форма имеет массив, в котором хранятся указатели на все компоненты. Form1->Controls и Form1->ControlCount. При создании динамических компонент, чтобы правильно использовать эти возможность необходимо вызывать метод Form1->InsertControl(TContorl*) для каждого динамически созданного объекта.
Например:
 
Код:
int I;
  TControl *ChildControl;

  for (I = 0; I < Form1->ControlCount; I++)
  {
    ChildControl = Form1->Controls;
//Дальше делаем что нужно
  }


А если приглядеться, то у человека было так:
...
massiv_memo->Parent = massiv_sheet;
...

12K
07 декабря 2005 года
kortun
18 / / 21.11.2005
Цитата:
Originally posted by GIZMO
А если приглядеться, то у человека было так:
...
massiv_memo->Parent = massiv_sheet;
...



угу, я пока так делаю:
massiv_memo->Lines->LoadFromFile(ExtractFilePath(Application->ExeName)+"Note"+IntToStr(i)+".txt");

246
07 декабря 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by kortun
угу, я пока так делаю:
massiv_memo->Lines->LoadFromFile(ExtractFilePath(Application->ExeName)+"Note"+IntToStr(i)+".txt");


Я к тому, что Parent-ом для Мемо назначается не форма т.е. ходить по Form1->Controls бесполезно.

259
08 декабря 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by GIZMO
Я к тому, что Parent-ом для Мемо назначается не форма т.е. ходить по Form1->Controls бесполезно.


А додумать самому. Почитать хелпы и выяснить откуда ноги растут слабо? Вот пример без массивов:

Код:
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
        for(int i=0;i<5;i++){
                TTabSheet* newSheet = new TTabSheet (PageControl1);
                newSheet->PageControl = PageControl1;
                newSheet->Name = "Note"+IntToStr(i);
                newSheet->Caption = "&#199;&#224;&#239;&#232;&#241;&#252; "+IntToStr(i);
                newSheet->TabVisible=true;
                newSheet->Enabled=true;
                PageControl1->InsertControl(newSheet);

                TMemo* newMemo = new TMemo(this->Handle);
                newMemo->Name = "Memo"+IntToStr(i);
                newMemo->Parent = newSheet;
                newMemo->Align = alClient;
                newSheet->InsertControl(newMemo);
                PageControl1->ActivePage=(TTabSheet*)PageControl1->Controls[0];
        }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        for(int i=0;i<5;i++)
        {
                TTabSheet* mySheet = (TTabSheet*)PageControl1->Controls;
                TMemo* myMemo = (TMemo*)mySheet->Controls[0];
                myMemo->Lines->Add("&#207;&#240;&#232;&#226;&#229;&#242; "+IntToStr(i));
        }
}
//---------------------------------------------------------------------------
246
08 декабря 2005 года
GIZMO
1.8K / / 30.07.2004
br />


Это кому?

259
08 декабря 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by GIZMO
Это кому?


Это не тебе. Машинально нажал на кнопочку ответить, вот цитатка и влезла.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог