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

Вниз

Как выполнить процедуру другого окна текущего приложения...   Найти похожие ветки 

 
grusty   (2005-03-09 19:01) [0]

Здравствуйте!
Есть родительская (MDIForm) и дочерняя (MDIChildForm) открытые формы. Открываю следующее окно, причем модально. После закрытия последней мне необходимо выполнить некоторую процедуру дочернего (MDIChildForm)окна. Как это осуществить? Ниже приведенный код выдает ошибку "Access violation...", что абсолютно естественно.

 with TForm2.Create(Self) do
 try
   ShowModal;
 finally
   Free;
   Form1.ReDraw;
 end;

Что необходимо добавить в код и как правильно вызвать процедуру (выделено жирным шрифтом)?
Заранее благодарен!


 
Плохиш ©   (2005-03-09 19:18) [1]

Ещё бы кто рассказал, кто такой Form1. И в каком месте супер проги стоит этот код?


 
YurikGL ©   (2005-03-09 19:24) [2]

Form2:=TForm2.Create(Self)
Form2.ShowModal;
Form1.ReDraw;


 
grusty   (2005-03-09 19:42) [3]

Form1 - это дочерняя форма. Код этот стоит в обработке события нажатия кнопки, расположенной на основной родительской форме.


 
YurikGL ©   (2005-03-09 20:10) [4]

Если Form1 создана, то Form1.ReDraw должно сработать.


 
grusty   (2005-03-09 20:18) [5]


> YurikGL

Ошибка - "Access violation..." да и неправильно это...


 
YurikGL ©   (2005-03-09 20:28) [6]


> grusty   (09.03.05 20:18) [5]

Попробуй, на всякий случай
Form1:=TForm1.create(self);
Form1.ReDraw;


 
grusty   (2005-03-09 20:43) [7]


> YurikGL

У меня форма Form1 уже открыта и создавать ее еще раз нет смысла...


 
YurikGL ©   (2005-03-09 20:54) [8]

может ошибка внутри процедуры ReDraw?


 
grusty   (2005-03-09 21:03) [9]


> YurikGL

Да вообще-то нет... :)


 
YurikGL ©   (2005-03-09 21:19) [10]

Мндя прочитал внимательно

> После закрытия последней мне необходимо выполнить некоторую
> процедуру дочернего (MDIChildForm)окна. Как это осуществить?

т.е. после закрытия родительской формы нужно выполнить процедуру в дочерней? Дык может это... ее все же уже нет?


 
grusty   (2005-03-09 22:18) [11]

Последнее окно - это третье окно Form2. Два предыдущих (MainForm и Form1) я не трогаю - они открываются при запуске приложения.
Кто-нибудь может еще что-нибудь посоветовать?


 
imav   (2005-03-10 00:57) [12]

1. А ты уверен в том что AV вываливается именно на Form1.ReDraw а не на TForm2.Free?
2. А любые другие методы Form1 работают в данном контексте, например, Close? Инициализирована ли переменная в теле процедуры? Может она у тебя параметром идет, который ты забыл назначить?

В общем, хюзю! Нужен код а не кофейная гуща.


> Ниже приведенный код выдает ошибку "Access violation...",
> что абсолютно естественно.


С таким настроем никуда!)))


 
grusty   (2005-03-10 14:36) [13]

Код процедуры (сократил до 1 строки), который я вызываю, следующий:

procedure TForm1.ReDraw;
begin
 Image1.Visible:=True;
end;

Есть форма и на ней компонент TImage.
Вот если в теле процедуры вставить вместо приведенного Beep или ShowMessage - тогда работает. Что я не так делаю?



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

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

Наверх




Память: 0.47 MB
Время: 0.043 c
3-1109786582
Arazel
2005-03-02 21:03
2005.03.27
Могу ли Я их использовать в компонентах Query для создание mdf


4-1108543060
Шурик Ш
2005-02-16 11:37
2005.03.27
Переменная среды TEMP


14-1110220844
SergSerSh
2005-03-07 21:40
2005.03.27
Клиент для форума


11-1093386026
Ripper
2004-08-25 02:20
2005.03.27
Событие TreeView


1-1110958296
Aleks
2005-03-16 10:31
2005.03.27
Базы компонент DBGrid1 как узнать номер строки????





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