2011-12-29 2 views
0

эй им работать на Delphi 7, и у меня есть сценарий для доступной формы, У меня есть две формdelphi..Onactive кнопки disble спутанности для доступной формы

1. FormOne 
    2. FormTwo 

FormOne имеет кнопку

enter image description here

которые создают FormTwo на кнопку мыши

var 
    Form2:TForm2; 
     begin 
     Form2:=TForm2.Create(nil); 
     Form2.ShowModal ; 
     Form2.Free; 
    end; 

На Form2 есть кнопка, которая мне нужно отключить .. (в некоторых условиях) .. enter image description here

так далее активировать из Form2 я сделал это

 if assigned(Form2) then 
     begin 
     Form2.Button1.Enabled:=False; 
     end; 

что это проверка, если форма создана, а затем отключить кнопку. , так как код находится в Onactivate означает, что форма 2 уже создана в соответствии с this Дельфи форма liyfe Cyle является

OnCreate -> OnShow -> OnActivate -> OnPaint -> OnResize -> OnPaint

..so button1 должен быть disabled..but его НЕ отключен.

enter image description here

+0

Или 'Form2' не назначен. Положите точку останова на «если назначено (..». –

+0

с точкой останова - «form2 = nil» y это ноль, когда он был создан? – PresleyDias

+0

, потому что вы не сказали «unit2.Form2: = Form2», когда вы создавая вашу форму в unit1. –

ответ

1

Form2 Я думаю, это локальная переменная в вашей кнопки обработчик щелчка; в вашем обработчике OnActivate вы проверяете глобальную переменную Form2 от устройства, где определено значение TForm2; вторая не назначается, если TForm2 не является автосозданной формой.

+0

да..Пожалуйста, это правильно .. я удалил var Form2: TForm2 и напрямую создал из глобальной переменной Form2: TForm2; и он сработал. !! – PresleyDias

Смежные вопросы