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

Вниз

Не получается создать окно.   Найти похожие ветки 

 
Denisrf   (2010-06-06 10:19) [0]

Всем доброго времени! Вот такая проблема, нужно из одного окна вызвать другое, кторое еще не создано при запуске. Пишу вот это - не работает:

procedure check3; {сравнение значений}
begin   {copy(r1,1,30)=copy(r2,1,30)}
 if (r1=r2) then begin
               Form1.Visible:=False;
               
              Application.CreateForm(TForm2, Form2);
             

             end
         else  begin
                  form1.Edit2.text:="";

               end;


 
Leonid Troyanovsky ©   (2010-06-06 10:33) [1]


> Denisrf   (06.06.10 10:19)  

> окна вызвать другое

Вызвать - Show?

И, во-ще, procedure check3 д.б. методом,
а использование переменных форм - Form1, Form2
это дурной вкус.

--
Regards, LVT.


 
Denisrf   (2010-06-06 10:46) [2]

Да тут уж не до вкуса, но вроде Application.CreateForm(TForm2, Form2) - сначала надо, а потом уже Show, разве нет?


 
Leonid Troyanovsky ©   (2010-06-06 10:55) [3]


> Denisrf   (06.06.10 10:46) [2]

> Да тут уж не до вкуса, но вроде Application.CreateForm(TForm2,
>  Form2) - сначала надо, а потом уже Show, разве нет?

Для того, чтобы вызвать метод объекта, его надо создать.
Дык, а что ж не работает?

--
Regards, LVT.


 
Юрий Зотов ©   (2010-06-06 13:03) [4]

if r1 = r2 then
begin
 Form1.Visible := False;
 TForm2.Create(Application).Show
end
else
 Form1.Edit2.text := "";

И в обработчике TForm2.OnClose пропишите Action := caFree.


 
Denisrf   (2010-06-06 13:50) [5]

ППЦ вылетает с ошибкой эта процедура, пишет что-то про нарушение прав доступа.


 
Плохиш ©   (2010-06-06 14:27) [6]

Значит ошибка в неприведённом коде.


 
Denisrf   (2010-06-06 15:04) [7]

Ладно спасибо дельфистам от сишника!


 
Юрий Зотов ©   (2010-06-06 16:34) [8]


> Denisrf   (06.06.10 13:50) [5]

Скорее всего, не нарушение прав доступа, а Access Violation (обращение к нераспределенной памяти). Если Вы прописали caFree, то при закрытии формы 2 она автоматически уничтожается - и если после этого обратиться к переменной Form2, то получим ту самую ошибку. Видимо, где-то у Вас такое обращение есть.

Вам нужно определиться - хотите ли вы создавать форму 2 каждый раз заново, или хотите создать ее только один раз, а потом только показывать и прятать. Если первое, то удалите переменную Form2 совсем и работайте без нее. А если второе, то не надо создавать TForm2 в коде, включите ее в AutoCreate и потом только вызывайте ее методы Show и Hide.



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

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.089 c
11-1206617782
Сашик
2008-03-27 14:36
2010.08.27
Форма с полупрозрачной тенью


2-1269906662
Дмитрий
2010-03-30 03:51
2010.08.27
обработка пакета сервера


9-1186833611
AlexanderMS
2007-08-11 16:00
2010.08.27
Проблема с прозрачностью.


2-1271844119
Учащийся
2010-04-21 14:01
2010.08.27
Почему не работает программа?


2-1268397398
timekiller
2010-03-12 15:36
2010.08.27
Интерактивный генератор текстов





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