![]() |
|
#1
|
||||
|
||||
![]() Всем доброго времени суток!
Создается что-то вроде MessageDialog, куда пользователь вводит данные, если они были введены неверно, по нажатию ок MessageDialog не должен закрываться. Код:
var AMsgDialog: TForm; AMaskEdit: TMaskEdit; CanClose: boolean; .............................................. begin ............................................. AMsgDialog := CreateMessageDialog(#10 + #13+'Ââåäèòå êëþ÷!' + #10 + #13+ #10 + #13+ #10 + #13, mtInformation , [mbYes]); AMsgDialog.OnCloseQuery( AMsgDialog , CanClose); with AMsgDialog do try ............................................. with AMaskEdit do begin Parent := AMsgDialog; ............................................. end; case ShowModal of ID_Yes: (тут если условие выполняется - то разрешить закрытие, иначе - выдать сообщение ) ; На строчке Код:
AMsgDialog.OnCloseQuery( AMsgDialog , CanClose); П.С. Варианты типа ИнпутКвери и ИнпутБокс не предлагать Memento Mori(арти) |
#2
|
||||
|
||||
![]() А почему бы просто не создать форму, набросать на нее нужных компонентов и вперед!
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#3
|
||||
|
||||
![]() так неинтересно
![]() Memento Mori(арти) |
#4
|
||||
|
||||
![]() Код:
type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } procedure MessageDialogQuery(Sender: TObject; var CanClose: Boolean); public { Public declarations } end; ... procedure TForm1.Button1Click(Sender: TObject); var MessageDialog: TForm; begin MessageDialog:=CreateMessageDialog('MessageDialog', mtInformation, [mbYes]); MessageDialog.OnCloseQuery:=MessageDialogQuery; Edit1.Parent:=MessageDialog; MessageDialog.ShowModal; Edit1.Parent:=Self; MessageDialog.Free; end; procedure TForm1.MessageDialogQuery(Sender: TObject; var CanClose: Boolean); begin CanClose:=Edit1.Text='123'; end; Пишу программы за еду. __________________ |