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

Вниз

Как сделать обращение к 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
8-37807
Novenkij
2003-09-05 14:10
2004.01.13
И еще раз о звуке


14-37874
JibSkeart
2003-12-22 14:02
2004.01.13
Что нибудь существует для мониторнига миниатс ?


3-37496
Spaniel
2003-12-17 12:39
2004.01.13
Есть ли в дельфях процедура, аналогичная PACK из foxpro?


1-37607
Hram
2003-12-28 16:31
2004.01.13
Excel и OleContainer


1-37660
ikivio
2003-12-26 10:42
2004.01.13
Чтение части файла.