Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2007, 08:57   #1
Kocapb
Пользователь
 
Регистрация: 28.10.2007
Сообщений: 61
По умолчанию Как обьявить переменную типа AnsiString глобально

Как обьявить переменную типа AnsiString так чтобы ее видели все формы???

нужно это для следующего:
загружаю файлы в ListBox с рабочей директории в форме F2
ListBox1->Clear();
if ( FindFirst(aPathJPEG + "*.jpg", faAnyFile, aSearchRec) == 0)
{
ListBox1->Items->Add(aSearchRec.Name);
while (FindNext(aSearchRec) == 0 )
ListBox1->Items->Add(aSearchRec.Name);

aPathJPEG = "D:\\ARS\\Diplom\\DataBaseForImages \\JPEG\\"; - рабочая директория

Затем есть необходимость загрузить новую директорию не рабочей папки.
Директория выбирается в другой форме F1 использую SelectDerectory:
if(SelectDirectory("Выберете директорию","",
aPath) != 0)
{
aPath = aPath + "\\";
}
как передать aPath из F1 в aPathJPEG в F2 ???
простым присвоением не помогает формы не видят чужих переменных ...
как объявить глобально эти переменные так чтобы они были видны всем???
Kocapb вне форума Ответить с цитированием
Старый 17.12.2007, 20:56   #2
SalasAndriy
Форумчанин Подтвердите свой е-майл
 
Аватар для SalasAndriy
 
Регистрация: 01.11.2007
Сообщений: 157
По умолчанию

Код:
//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>

AnsiString Directory; //Переменная обьявленная глобально
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
private:	// User declarations
public:		// User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
ну, а теперь просто форму 1 подключай к форме 2.

Код:
//---------------------------------------------------------------------------

#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "Unit1.h"
//---------------------------------------------------------------------------
class TForm2 : public TForm
{
__published:	// IDE-managed Components
private:	// User declarations
public:		// User declarations
        __fastcall TForm2(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm2 *Form2;
//---------------------------------------------------------------------------
#endif
Теперь можно использовать переменную и в форме 2. А к остальным формам 3, 4, 5, 6 ... . Нужно так само подключить файл #include "Unit1.h".
SalasAndriy вне форума Ответить с цитированием
Старый 18.12.2007, 07:11   #3
Kocapb
Пользователь
 
Регистрация: 28.10.2007
Сообщений: 61
По умолчанию

пробывал так, в Visual Studio я так делал всегда а в Builder что-то не получается, как-то странно...
Kocapb вне форума Ответить с цитированием
Старый 18.12.2007, 07:14   #4
Kocapb
Пользователь
 
Регистрация: 28.10.2007
Сообщений: 61
По умолчанию

слушай я вот использую SelectDirectory у неё же параметр Directory хранит путь к каталогу а как к нему обратиться?
Kocapb вне форума Ответить с цитированием
Старый 18.12.2007, 08:36   #5
Kocapb
Пользователь
 
Регистрация: 28.10.2007
Сообщений: 61
По умолчанию

Сделал проще =)
занес в форму F2 Label1. в F1 пишу F2->Label1->Caption = aPath
и уже в F2 извлекаю из Label1->Caption по "нубски", но что же делать =)
Kocapb вне форума Ответить с цитированием
Старый 18.12.2007, 21:01   #6
SalasAndriy
Форумчанин Подтвердите свой е-майл
 
Аватар для SalasAndriy
 
Регистрация: 01.11.2007
Сообщений: 157
По умолчанию

Цитата:
слушай я вот использую SelectDirectory у неё же параметр Directory хранит путь к каталогу а как к нему обратиться?
Привет! Смотри:

Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   AnsiString Directory;
   if(SelectDirectory("Обзор папок", "", Directory))
   {
      ShowMessage(Directory);
   }
}

Последний раз редактировалось SalasAndriy; 18.12.2007 в 21:03. Причина: Забил вставить теги CODE
SalasAndriy вне форума Ответить с цитированием
Старый 19.12.2007, 05:05   #7
Kocapb
Пользователь
 
Регистрация: 28.10.2007
Сообщений: 61
По умолчанию

спасибо =)))
Kocapb вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
взять переменную из dll Roof Общие вопросы Delphi 15 27.08.2008 16:40
из AnsiString в Char[] juden Общие вопросы C/C++ 6 20.05.2008 22:49
Тема AnsiString не раскрыта=) chipset Помощь студентам 3 21.02.2008 21:38
Как записать и прочитать переменную моего типа из реестра? Никки Общие вопросы Delphi 2 09.12.2007 13:56
передать переменную ar4i Общие вопросы Delphi 10 04.12.2006 14:30