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

Вниз

Как сделать обращение к MdiChild –форме из другой MdiChild-формы?   Найти похожие ветки 

 
Крутыш   (2003-12-24 22:17) [0]

Пусть например две MdiChild-формы открыты в данный момент.
Dform2, Gform3.
В MDIChild-форме Dform2 есть такой код: Gform3.caption:=’Здрасьте’;
Щелчком на кнопке вызываешь его и выходит ошибка:
Access violation at address 000545 in module project1 ……..
1.Как обратиться к другой форме именно той которая нужна???
2.И если например у тебя несколько форм класса Gform3. Как отбратиться именно к той форме откуда ты вызвал другую форму для выбора продуктов питания. И вернуть результат именно той форме расходной накладной откуда была вызван справочник
продуктов питания (как в 1С). Даже если у тебя в одно время открыто несколько накладных???


 
Talla2k   (2003-12-24 22:58) [1]

Вот разбирайся:

(application.mainform.MDIChildren[0] as TForm2).Label1.Caption:=
floattostrf(strtofloat((application.mainform.MDIChildren[0] as TForm2).label1.caption)-
strtofloat(sum)+(strtofloat(new_sto)*strtofloat(new_kol)),fffixed,5,2);
old_sk:=floattostrf((strtofloat(sto)*strtofloat(kol))-strtofloat(sum),fffixed,5,2);


 
ЮЮ   (2003-12-25 04:14) [2]

>Как отбратиться именно к той форме откуда ты вызвал другую форму для выбора продуктов питания. И вернуть результат именно той форме расходной накладной откуда была вызван справочник

Очевидно, в конструкторе справочника надо указывать форму, его вызвавшую.


 
ЮЮ   (2003-12-25 04:17) [3]

Р.s. и не испльзовать конструкции типа Gform3.ххх. А глобальную переменную Gform3 в модуле формы вообще "убить" как источник возможных AV.


 
Крутыш   (2003-12-25 08:41) [4]

ЮЮ[2]!!! То есть как указать. Не допонял.


 
Кщд   (2003-12-25 08:59) [5]

передать конструктору указатель на форму-родитель


 
Silver Alex   (2003-12-25 09:39) [6]


> Как отбратиться именно к той форме откуда ты вызвал другую
> форму для выбора продуктов питания. И вернуть результат
> именно той форме расходной накладной откуда была вызван
> справочник


Dform2, Gform3.

можно передавать вызываемой форме Handle нужной тебе формы, а потом отсылать сообщение этой форме.
например, во всех формах заводишь переменную fHandle.Затем из Gform3 ты вызываешь Dform2 приблизительно так

with TDform2 .Create(application) do
begin
fHandle:=self.Handle;
Show;//если форма MdiChild, то Show не надо
end;

ну и после отсылаешь что тебе надо из Dform2
SendMessage(fHandle,WM_MAIN_MESSAGE,1,Integer(Edit.Text));

а в Gform3 соотвественно обрабатываешь сообщение

procedure TGform3.MAIN_MESSAGE(var M: TMessage);
begin
case m.WParam of
1: self.Caption:=string(m.LParam);
2: ...
3: ...
end;
end;
end;


 
Крутыш   (2003-12-25 23:07) [7]

Благоарю всех!!!
Спасибо!!!



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

Форум: "Основная";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
14-37864
Nest
2003-12-16 19:58
2004.01.13
Подскажите не устанавливается MS Visual Studio .NET


14-37881
Vlad Oshin
2003-12-22 16:08
2004.01.13
:) Является ли посылка на AltaVistу, алгоритмом


7-37955
demonyator
2003-10-30 00:41
2004.01.13
Как отловить событие создания или прекращения процесса.


11-37598
nsvi
2003-04-26 02:20
2004.01.13
Глюк StatusText


14-37940
Holy
2003-12-19 18:28
2004.01.13
Не по теме, но кто что скажет...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский