Форум программистов, компьютерный форум CyberForum.ru

Получение из другой формы ТStringList - C++

Восстановить пароль Регистрация
 
JuriS
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 11
08.06.2011, 13:22     Получение из другой формы ТStringList #1
Не знаю куда это больше подходит, но появилась необходимость из Form2 получить доступ к
ТStringList *myList = new ТStringList(); находящемуся в Form1.
Есть ли какая то простая возможность это сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2011, 13:22     Получение из другой формы ТStringList
Посмотрите здесь:

C - получение IP адреса C++
Получение данных о пк C++
C++ Получение вывода другой программы
Доступ к массиву из другой формы C++
C++ Как обратиться к переменной из другой формы?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
np_msn
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 46
08.06.2011, 13:39     Получение из другой формы ТStringList #2
Привет.
Если Form1 в файле unit1.cpp
а Form2 в файле unit2.cpp, то
в unit2.cpp прописываешь #include 'unit1.h',
либо тоже самое можно сделать через меню File->Include Unit Hdr...
Все компоненты, находящиеся на Form1 становятся доступными в Form2.
Удачи.
JuriS
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 11
08.06.2011, 14:40  [ТС]     Получение из другой формы ТStringList #3
Про include я знаю, но таким образом кажется можно на элементы другой формы доступ получить, а не на TStringList?
Если на TStringList можно, то как это сделать?
np_msn
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 46
08.06.2011, 17:35     Получение из другой формы ТStringList #4
Привет.
А в каком месте инициализируется myList?
Может стоит сделать его глобальным?
Например:
в unit1.h:
C++
1
ТStringList *myList;
в unit1.cpp:
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    myList = new TStringList;
}
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
    delete myList;
}
в unit2.cpp:
C++
1
2
3
4
5
#include 'Unit1.h'
void __fastcall TForm2::FormCreate(TObject *Sender)
{
    myList->Add('Ерунда');
}
JuriS
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 11
08.06.2011, 20:15  [ТС]     Получение из другой формы ТStringList #5
Здрасти.
Всё сделал как вы сказали, но глобально TStringList не продекларировался, из формы Form2 myLst не находится......
np_msn
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 46
09.06.2011, 16:46     Получение из другой формы ТStringList #6
Привет.
Вот текст файлов работающей программы:

unit1.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef Unit1H
#define Unit1H
 
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
 
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    void __fastcall FormCreate(TObject *Sender);
    void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
private:    // User declarations
public:     // User declarations
    __fastcall TForm1(TComponent* Owner);
};
 
extern PACKAGE TForm1 *Form1;
extern TStringList* myList;
 
#endif
unit1.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <vcl.h>
#pragma hdrstop
 
#include 'Unit1.h'
 
#pragma package(smart_init)
#pragma resource '*.dfm'
 
TForm1 *Form1;
TStringList* myList;
 
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    myList = new TStringList;
}
 
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
    delete myList;
}
unit2.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef Unit2H
#define Unit2H
 
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
 
class TForm2 : public TForm
{
__published:    // IDE-managed Components
    void __fastcall FormCreate(TObject *Sender);
private:    // User declarations
public:     // User declarations
    __fastcall TForm2(TComponent* Owner);
};
 
extern PACKAGE TForm2 *Form2;
 
#endif
unit2.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <vcl.h>
 
#pragma hdrstop
 
#include 'Unit2.h'
#include 'Unit1.h'
 
#pragma package(smart_init)
#pragma resource '*.dfm'
 
TForm2 *Form2;
 
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{
}
 
void __fastcall TForm2::FormCreate(TObject *Sender)
{
    myList->Add('String1');
    myList->Add('String2');
    String s = myList->Strings[0] + '' + myList->Strings[1];
    MessageBox(0, s.c_str(), 'It’s myList', MB_OK);
}
Удачи.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2011, 18:52     Получение из другой формы ТStringList
Еще ссылки по теме:

Получение ошибка C++
C++ Получение температуры ( C° - F°)
C++ Получение адреса

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
JuriS
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 11
10.06.2011, 18:52  [ТС]     Получение из другой формы ТStringList #7
Спасибо, теперь заработало!
Yandex
Объявления
10.06.2011, 18:52     Получение из другой формы ТStringList
Ответ Создать тему
Опции темы

Текущее время: 16:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru