Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вызов процедур MDI форм [D7, XP]


D@nger ©   (2009-04-21 14:37:00) 

Здравствуйте! Вызываю из обычной формы процедуру MDI формы следующим образом:

 if MDIChildCount>0 then
  begin
    j:=MDIChildCount-1;
    for i:=0 to j do
    begin
      if MDIChildren[i].Name='FMDI_one' then tfvklad(MDIChildren[i]).setkapaint;
      if MDIChildren[i].Name='FMDI_two' then tfmodul(MDIChildren[i]).setkapaint;
    end;
  end;


Вызов процедур не присходит... почему?


D@nger   (2009-04-21 14:50:00) [1]

ааааа.... нашел где ошибка... процедуру вызывал не из главной формы ...
вот так все заработало:

if fmain.MDIChildCount>0 then
begin
  j:=fmain.MDIChildCount-1;
  for i:=0 to j do
  begin
    if fmain.MDIChildren[i].Name='FMDI_one' then tfmdi_one(fmain.MDIChildren[i]).setkapaint;
    if fmain.MDIChildren[i].Name='FMDI_two' then tfmdi_two(fmain.MDIChildren[i]).setkapaint;
  end;
end;


D@nger   (2009-04-21 14:42:00) [2]

если вызываемую процедуру вызывать в этой же MDI форме.. она отрабатывает без ошибки...


D@nger   (2009-04-21 14:41:00) [3]

т.е. вот так:

if MDIChildCount>0 then
 begin
   j:=MDIChildCount-1;
   for i:=0 to j do
   begin
     if MDIChildren[i].Name='FMDI_one' then tfmdi_one(MDIChildren[i]).setkapaint;
     if MDIChildren[i].Name='FMDI_two' then tfmdi_two(MDIChildren[i]).setkapaint;
   end;
 end;


Игорь Шевченко   (2009-04-21 14:40:00) [4]


> Вызов процедур не присходит... почему?


очевидно из-за ошибки


Наверх

Титульная страница Поиск, карта сайта Написать письмо