Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

В Form2 получается строка, которую нужно передать в Form1 [D7, XP]


Страницы:   1 2

Fynjy ©   (2008-09-05 10:32:00) 

Привет всем! Есть такой проект, в нем много всяких форм, окон. Предположим есть Form1, и Form2 которая вызавается из Form1 немодально по верх всех окон. В Form2 получается строка, которую нужно передать в Form1, при закрытии Form2. Обычно типа
Form1.Edit1.text:= Form2.Edit1.text не получается. Подскажите, как можно это сделать по грамотному?


Fynjy   (2008-09-05 11:01:00) [21]

вот форма2
procedure AdvancedSearchShow;
begin
 with TAdvancedSearchForm.Create(Application) do
 begin
   BBB;
   Show;
 end;

end;

в uses я прописал все как надо. В процедуре ВВВ получаем сторку, и при закрыти " закрыть" она не передается, вот и все
то что написал Юрий Зотов не катит я пытаюсь вставить строку в Edit но там пусто


Vlad Oshin   (2008-09-05 11:00:00) [22]


> evvcom ©   (05.09.08 10:44) [7]
> почему OnCloseQuery?

у меня своя свадьба, экспериментирую


Медвежонок Пятачок   (2008-09-05 10:55:00) [23]

форма которая поверх всех и при закрытии которой кто-то ожидает значение - верный кандидат  на модальность


zorik   (2008-09-05 10:52:00) [24]

Если немодально и поверх всех окон, то это может быть какая-то панель инструментов. Нужно знать предмет


Медвежонок Пятачок   (2008-09-05 10:51:00) [25]

Правильно сделать форму модальной.


zorik   (2008-09-05 10:47:00) [26]


> Очень неграмотно

Если, например, форм много и куча параметров, скажем настройки. Не клас же создавать начинающему сразу


evvcom   (2008-09-05 10:45:00) [27]


> zorik ©   (05.09.08 10:43) [6]
> Незнаю наскоко грамотно

Очень неграмотно


evvcom   (2008-09-05 10:44:00) [28]


> Vlad Oshin ©   (05.09.08 10:41) [4]
> procedure TForm2.FormCloseQuery

а почему OnCloseQuery? Почему не OnClose? Ты же не собираешься препятствовать ее закрытию.


zorik   (2008-09-05 10:43:00) [29]

Незнаю наскоко грамотно, но можно создать отдельный модуль с описанием всех глобальних переменных, включить его в Form1 и Form2 и передавать значения через эти переменные. Но это зависит от конкретной задачи. Может нет надобности так сложно.


evvcom   (2008-09-05 10:42:00) [30]

По грамотному - не использовать переменные Form1 и Form2, но для начинающего это может быть и сложно. А по неграмотному ты уже написал, и это должно работать. Видимо, ты где-то начудил в другом месте. Бряк поставь на эту строчку и посмотри, программа на нем спотыкается?


Vlad Oshin   (2008-09-05 10:41:00) [31]


> Обычно типа
> Form1.Edit1.text:= Form2.Edit1.text не получается.

почему это?

var
 Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
end;

var
 Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  form1.button1.caption:='sdsd';
  CanClose:=true;
end;


Юрий Зотов   (2008-09-05 10:40:00) [32]

> Form1.Edit1.text:= Form2.Edit1.text не получается

Почему? Должно получаться. Или так можно:

TForm1 = class(TForm)
 ...
public
 Str: string;
end;

И при закрытии Form2 пишем: Form1.Str := 'строка'; Теперь форма Form1 может эту строку использовать.


zorik   (2008-09-05 10:39:00) [33]

Как вызываешь? Почему не получается, какая ошибка?


Сергей М.   (2008-09-05 10:39:00) [34]


> не получается


Что конкретно не получается ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо