![]() |
|
|
#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); П.С. Варианты типа ИнпутКвери и ИнпутБокс не предлагать |
|
#2
|
||||
|
||||
|
А почему бы просто не создать форму, набросать на нее нужных компонентов и вперед!
|
|
#3
|
||||
|
||||
|
так неинтересно
![]() |
|
#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; |