![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
В Form2 получается строка, которую нужно передать в Form1 [D7, XP]
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]
> не получается
Что конкретно не получается ?