if (not Assigned(Form2)) then // Пішіннің бар-//жоқтығын тексеру
Form2:=Form2.Create(Self);// Пішінді құру
Form2.Show; // (немесе Form2.ShowModal) //Пішінді //көрсету
Енді жай пішінмен Модалды пішіннің айырмашылығын қарастырайық. Жай пішін экранда орналасқан барлық пішіндердің бірінен біріне еркін көшуге мүмкіндік береді.
Ал модалдық пішін оны шақырған сәтте жобаның пішіндері арасындағы көшуді жабады да, жабылғанша тек сол ашылған пішінмен ғана жұмыс істейсіз.
Оған қарамастан екінші пішінді шақыруға әрекет жасасаңыз, бағдарлама мынадай сауал шығарады:
Ол сауалдың мазмұны мынау: Form1 пішіні Unit 2 модулінде жарияланған Form2 пішінін шақырып тұр, бірақ ол пішін қолданылған модульдер тізімінде жоқ.
Сіз оны қосқыңыз келе ме?
Мұны директива {$R *.dfm} алдындағы модулдің басына мына бағдарлама үзігін uses Unit2;
қосу арқылы шешу керек. Негізінде мұны компиляция алдында «қолмен» қосуға да болар еді. Сонда сауал да болмайды. Бірақ соның қажеті бар ма?
Мұнда «Yes»» деп жауап қайтарып және F9 – ды басамыз.
Алдымен пішінге оны жабу операциясын енгіземіз. Мұны бірнеше тәсілмен істеуге болады. Батырманы алып, оған « Закрыть» деп жазып, сосын OnClick өңдеуішке былай жазамыз:
Form2.Close; // негізінде жай ғана Close;
Бұл оператор оны пішін менюінен шақырған кезде жұмыс істейді, әрине меню (Standard астарындағы MainMenu компоненті) оған енгізілген жағдайда . Бұл туралы алда әңгімелейтін боламыз.
Бізге енді модальды пішінге жататын пішіндердің жабылу тәсілдерін қарастыруымыз керек. Оның сұхбат жасауға арналған терезелерінде сұрақтарға жауап беруді қажет етеді.
Ол үшін пішінге мына : «Иә», «Жоқ» «Болдырмау» және т.б жауаптарға сәйкес батырмаларды орналастыру қажет. Әр батырманың mrYes, mrNo, mrCansel және басқа мәндерге ие ModalResult қасиеті бар. Мұнда таңдалған батырманың ModalResult мәні пішіннің осы қасиетіне беріледі. Бұл қасиет объектілер инспекторынан көруге болатын пішін қасиетінің тізімінде жоқ, бірақ оны бағдарламалық түрде таба аламыз. («Form2» деп жазып нүкте қой, сосын шыққан тізімнен ізде)
ModalResult қасиетінің mrNone мәнінен бөлек мәні бар батырмасын бассақ ( тіпті батырмада өңдеуші болмаса да) ол пішіннің жабылуына әкеледі. Осыдан кейін пішіннің осы қасиетін таңдау арқылы, тұтынушының қойылған сұраққа қандай жауап бергенін анықтауға болады:
Достарыңызбен бөлісу: |