Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];

Вниз

В 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.53 MB
Время: 0.046 c
2-1220629617
New_ser
2008-09-05 19:46
2008.10.12
Как программно переместить курсор в Edit?


2-1220801949
Начинающий1
2008-09-07 19:39
2008.10.12
Логарифм


6-1193813058
dddmitriyy
2007-10-31 09:44
2008.10.12
как прокликать по определленным ссылкам на сайте


2-1220071019
KIT
2008-08-30 08:36
2008.10.12
Из Interbase в Delphi 7


15-1219142604
tytus
2008-08-19 14:43
2008.10.12
Не удаляется выделенный блок в редакторе...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский