Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.12;
Скачать: CL | DM;

Вниз

В Form2 получается строка, которую нужно передать в Form1   Найти похожие ветки 

 
Fynjy   (2008-09-05 10:32) [0]

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


 
zorik ©   (2008-09-05 10:39) [1]

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


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


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


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


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

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

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

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

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


 
Vlad Oshin ©   (2008-09-05 10:41) [4]


> Обычно типа
> 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;


 
evvcom ©   (2008-09-05 10:42) [5]

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


 
zorik ©   (2008-09-05 10:43) [6]

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


 
evvcom ©   (2008-09-05 10:44) [7]


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

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


 
evvcom ©   (2008-09-05 10:45) [8]


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

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


 
zorik ©   (2008-09-05 10:47) [9]


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

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


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

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


 
zorik ©   (2008-09-05 10:52) [11]

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


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

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


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


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

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


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

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

end;

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


 
Сергей М. ©   (2008-09-05 11:04) [15]


> Fynjy   (05.09.08 11:01) [14]


см.

http://delphimaster.net/view/2-1220507763/

p.s. Что за клоунская буффонада с никами ?


 
Fynjy   (2008-09-05 11:15) [16]

я просил друга, но сказал что не опубликовал ничего


 
Vlad Oshin ©   (2008-09-05 11:19) [17]

покажи обе формы


 
Сергей М. ©   (2008-09-05 11:24) [18]


> сказал что не опубликовал ничего


Не понял, кто кому что сказал и кто что не опубликовал ?

Странные вы "друзья", однако ..

Покажи текст BBB - посмотрим, друзья вы или не друзья) ..


 
Fynjy   (2008-09-05 11:28) [19]

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

end;

function TAdvancedSearchForm.BBB: Boolean;
var
 fhh:TMainFrame;
begin
 fhh:=TMainFrame.Create(nil);
 try
   with  fhh.IBQParam do
   begin
     SQL.Clear;
     SQL.Add("select distinct PAR_NAME, PAR_ID from PAR where PAR_NAME <> :str order by PAR_NAME ");
     ParamByName("str").AsString := "";
     Open;
     First;
     while not Eof do
     begin
       ComboBox1.Items.AddObject( FieldByName("PAR_NAME").AsString,
                               Pointer( FieldByName("PAR_ID").AsInteger) );
       Next;
     end;
       Close;
   end;
  finally
  fhh.free;
end;
end;

и вот как получается строка
procedure TAdvancedSearchForm.Button3Click(Sender: TObject);
begin
 if length(ComboBox1.Text) = 0 then
   begin
     ShowMessage("&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#237;&#224;&#232;&#236;&#229;&#237;&#238;&#226;&#224;&#237;&#232;&#229; &#239;&#224;&#240;&#224;&#236;&#229;&#242;&#240;&#224;!");
     exit;
   end;
 if length(Edit1.Text) = 0 then
   begin
     ShowMessage("&#199;&#237;&#224;&#247;&#229;&#237;&#232;&#229; &#237;&#229; &#236;&#238;&#230;&#229;&#242; &#225;&#251;&#242;&#252; &#239;&#243;&#241;&#242;&#251;&#236;!" + #13 +"     &#194;&#226;&#229;&#228;&#232;&#242;&#229; &#231;&#237;&#224;&#247;&#229;&#237;&#232;&#229;!");
     exit;
   end;
 if parsearch = "" then
   begin
     parsearch := "(nmk_par.Par_id = " + IntToStr( Integer( ComboBox1.Items.Objects[ComboBox1.ItemIndex]) ) + " and" +
     " nmk_par.nmk_par_value containing " + Edit1.Text+ ")" ;

   end
 else
   parsearch := parsearch + " and (nmk_par.Par_id = " + IntToStr( Integer( ComboBox1.Items.Objects[ComboBox1.ItemIndex]) ) + " and" +
     " nmk_par.nmk_par_value containing " + Edit1.Text+ ")";
 with ListView1.Items.Add do
   begin
     Caption := ComboBox1.Text;
     with SubItems do
     Add(Edit1.Text);
   end;
   Button1.Enabled:=true;
   Button4.Enabled:=true;
   Edit2.Text:= parsearch;
end;


 
Сергей М. ©   (2008-09-05 11:33) [20]


> Fynjy   (05.09.08 11:28) [19]


С вами, "друзьями", все ясно - чукчи-писатели)

Здесь

http://delphimaster.net/view/2-1220507763/

твоему "другу" все разжевано, осталось только прочитать и вникнуть.


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

да при чем тут Query?  мне просто нужна строка из формы 2, а Query  я в фрейме попользую.


 
Сергей М. ©   (2008-09-05 11:49) [22]

Ну и где в твоем коде собственно строка

Form1.Edit1.text:= Form2.Edit1.text

?


 
Сергей М. ©   (2008-09-05 11:53) [23]


> при чем тут Query


Совершенно ни причем)

Query - это просто некий существующий объект в Форме1, к которому требуется получить доступ из методов Формы2.


 
brother ©   (2008-09-05 11:54) [24]

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

по этому поводу...
в Form1 uses добавь то что написано в unit form2 (например: unit2), а в
 Form2 uses добавь то что написано в unit form1 (например: unit1) теперь ты можешь сделать так:
 в form1: Form1.Edit1.text:= Form2.Edit1.text
или в form2: Form1.Edit2.text:= Form1.Edit1.text
коряво, но как вариант пойдет?


 
Юрий Зотов ©   (2008-09-05 11:59) [25]

Боже...
:-(


 
brother ©   (2008-09-05 12:01) [26]

> Боже...
> :-(

Как предупреждал журнал: Здоровье - нервные клетки не восстанавливаются ;)


 
Медвежонок Пятачок ©   (2008-09-05 12:04) [27]

конкурс на самый взаимозависимый между модулями и самый неподдерживаемый код?


 
brother ©   (2008-09-05 12:07) [28]

главное, чтоб победила дружба!


 
Ega23 ©   (2008-09-05 12:11) [29]


> конкурс на самый взаимозависимый между модулями и самый
> неподдерживаемый код?


в качестве пятничной задачки предложи, в "потрепаться".


 
Плохиш ©   (2008-09-05 12:11) [30]

Прикольно

Dagir ©   (04.09.08 11:27) [18]
ну, будем посмотреть

вылилось в

> Fynjy   (05.09.08 10:32)  
> Привет всем!

:-))
PS. Дети, вам бы пора нанять программиста.


 
Сергей М. ©   (2008-09-05 12:33) [31]


> Плохиш ©   (05.09.08 12:11) [30]


Видать, "друзья" поссорились и больше не общаются)

Будем надеяться, что хоть не поколотили друг-друга - тема-то довольно важная)


 
Fynjy   (2008-09-05 13:13) [32]

Удалено модератором


 
Сергей М. ©   (2008-09-05 13:25) [33]

Удалено модератором


 
Anatoly Podgoretsky ©   (2008-09-05 14:26) [34]

> Плохиш  (05.09.2008 12:11:30)  [30]

Откуда у детей деньги?



Страницы: 1 вся ветка

Текущий архив: 2008.10.12;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.019 c
15-1219221012
Petr V. Abramov
2008-08-20 12:30
2008.10.12
Wifi


2-1220527371
fellow
2008-09-04 15:22
2008.10.12
форма не хочет Show поверх всех


8-1186645709
Plot_hk
2007-08-09 11:48
2008.10.12
Работа с видео


1-1199809637
sten
2008-01-08 19:27
2008.10.12
Передача параметров в процедуру


1-1198176914
Dronishe
2007-12-20 21:55
2008.10.12
Анимация формы окна