Передача переменной между формами
ЗЫ форму загружаю уже ессно из имеющейся:-) кхе...
TModalResult ModalResult = Form2->ShowModal();
if(ModalResult == ...)
{
...
}
ModalResult можно присваивать по нажатию кнопок, о после Close(); а если в качестве кнопок юзаются TButton, то там вообще все автоматически делается, а значение ModalResult указывается еще design time для каждой кнопки.
а где ты потом хочешь юзать это значение? все равно же в первой форме? почему нельзя обратиться Form1->Var = ...? либо можно передать через свойство ModalResult модальной формы:
TModalResult ModalResult = Form2->ShowModal();
if(ModalResult == ...)
{
...
}
ModalResult возвращает int, а мне нужен другой тип, напр. AnsiString... А через форму тоже не получится, т.к. нет доступа в объект Form1, из объекта Form2.
Так что вопрос открыт: в OnShow стоит ShowModal Form2. Из Form2 надо передать значение в Form1...
ModalResult возвращает int, а мне нужен другой тип, напр. AnsiString... А через форму тоже не получится, т.к. нет доступа в объект Form1, из объекта Form2.
Так что вопрос открыт: в OnShow стоит ShowModal Form2. Из Form2 надо передать значение в Form1...
Если ты мз Form1 вызываешь Form2, то, очевидно, она тебе видна. Ну и создай в ней какой-либо public член и забирай значение из него.
Form2::ButtonOkClick
{
strResulInForm2 = "Возвращаемое значение";
}
Form1::OnShow
{
AnsiString strResultInForm1;
if(Form2->ShowModal() == mrOk)
strResultInForm1 = Form2->strResultInForm2;
//дальше можешь Form2 хоть уничножить
// а результатом пользоваться
}
extern TIniFile *Ini;
extern String sFile, VersionFile;
extern char APchar[255];
А также естественно объявить эти переменные в юните главной формы.
Если я все правильно понял, то можно просто в хедерах обоих форм после вот этой строчки (extern PACKAGE TForm *Form;) объявить свои переменные по такому принципу:
extern TIniFile *Ini;
extern String sFile, VersionFile;
extern char APchar[255];
А также естественно объявить эти переменные в юните главной формы.
Не очень логично для единовременной передачи значения создавать переменны, которые будут существовать все время жизни программы
Если я все правильно понял, то можно просто в хедерах обоих форм после вот этой строчки (extern PACKAGE TForm *Form;) объявить свои переменные по такому принципу:
extern TIniFile *Ini;
extern String sFile, VersionFile;
extern char APchar[255];
А также естественно объявить эти переменные в юните главной формы.
У меня такое не проходит:
extern result res
после этого отладчик видит, что объект содержит ненулевые значения, но сама программа видит одни нули