Работа с OpenDialog

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Dark_anamnesis
Сообщения: 6
Зарегистрирован: 08 ноя 2010, 19:46

Здраствуйте, такая проблема, как объявить переменную list в которую загружается открываемый текстовый файл, что бы она была видна другой функции??

Код: Выделить всё

TOpenDialog OpenDialog1 = new TOpenDialog(this);
OpenDialog1->Filter = "Текстовые файлы|*.txt";
 if (!OpenDialog1->Execute()) return;
  TStringList *list = new TStringList;

 list->LoadFromFile(OpenDialog1->FileName);

Аватара пользователя
Decoder
Сообщения: 308
Зарегистрирован: 19 фев 2008, 23:11
Откуда: Moscow

Сейчас твоя переменная создаётся локально внутри метода. А тебе нужно сделать её членом класса, т.е. перенести её из процедуры в заголовочный файл твоего класса.
Поумнеть несложно, куда труднее от дури избавиться.
Dark_anamnesis
Сообщения: 6
Зарегистрирован: 08 ноя 2010, 19:46

Окей, а как это сделать?
BulldozerBSG
Сообщения: 270
Зарегистрирован: 09 янв 2010, 04:14
Контактная информация:

ручками, IDE за тебя это делать не будет.
Аватара пользователя
Decoder
Сообщения: 308
Зарегистрирован: 19 фев 2008, 23:11
Откуда: Moscow

ручками, IDE за тебя это делать не будет.
Ну почему же? В Delphi и в C++ Builder довольно мощная визуальная среда разработки. Если уж такой визард имеется в Visual C++, который добавляет в класс переменные и методы, то для платформы VCL это должно быть само собой разумеющимся.
Объявление самой переменной (TStringList *list;) нужно будет разместить в заголовке класса.
Из локальной процедуры нужно будет перенести операцию создания объекта (list = new TStringList;) в конструктор класса, а операцию удаления (delete list) - в деструктор класса.
Вот собственно и всё.
Поумнеть несложно, куда труднее от дури избавиться.
Dark_anamnesis
Сообщения: 6
Зарегистрирован: 08 ноя 2010, 19:46

Спасибо за ответ))) Не то, что тут всякие КЕПы ходят, и высказывают свое мнение, правда до решения дошел сам)))
Ответить