Formuláře, tvorba, zobrazení

Top  Previous  Next

Seznam témat:

řešení

 

Řešení

Vytvoření formuláře, jeho modální zobrazení a likvidace

 

var

 Frm: TForm;

 EditText: TEdit;

 BtnOk,BtnCancel: TButton;

begin

 Frm := TForm.Create(nil); //Owner=nil -> Frm si uvolním sám

 try

   //vlastnosti formuláře

   Frm.Caption := 'Vložte údaje';

   Frm.Position := poScreenCenter;

   Frm.Width := 300;

   Frm.Height := 200;

   Frm.BorderStyle := bsDialog;

 

   //prvek pro vložení textu

   EditText := TEdit.Create(Frm); //prvek bude uvolněn se zánikem Frm

   EditText.Left := 20;

   EditText.Top := 30;

   EditText.Width := 200;

   EditText.Parent := Frm;

 

   //popisek k prvku EditText

   with TLabelPlus.Create(Frm) do begin

     Caption := '&Text';

     Parent := Frm;

     FocusControl := EditText; //zajistí zarovnání k prvku

   end;

   //tlačítko OK

   BtnOk := TButton.Create(Frm);

   BtnOk.Caption := 'OK';

   BtnOk.Left := 120;

   BtnOk.Top := 140;

   BtnOk.Default := True; //bude reagovat na klávesu Enter

   BtnOk.ModalResult := mrOk;

   BtnOk.Parent := Frm;

 

   //tlačítko Storno

   BtnCancel := TButton.Create(Frm);

   BtnCancel.Caption := 'Storno';

   BtnCancel.Left := 200;

   BtnCancel.Top := 140;

   BtnCancel.Cancel := True; //bude reagovat na klávesu Esc

   BtnCancel.ModalResult := mrCancel;

   BtnCancel.Parent := Frm;

 

   //zobraz form modálně

   if Frm.ShowModal = mrOk then

     OKBox(EditText.Text);

 finally

   Frm.Free;

 end;

end.

 

Vytvoření formuláře, jeho nemodální zobrazení ( likvidace při zavření )

var

 Frm: TForm;

 BtnClose: TButton;

 

procedure FormClose(Sender: TObject; Action: TCloseAction);

begin

 Action := caFree; //form se uvolní z paměti

end;

 

procedure BtnClick(Sender: TObject);

begin

 Frm.Close;

end;

 

begin

 Frm := TForm.Create(nil);

 try

   //vlastnosti formuláře

   Frm.Caption := 'Nemodální formulář';

   Frm.Position := poScreenCenter;

   Frm.Width := 300;

   Frm.Height := 200;

   Frm.BorderStyle := bsSizeable;

   Frm.OnClose := @FormClose; //zajistí likvidaci formu při zavření

   AddTaskForm(Frm); //přidá tlačítko na hlavní lištu programu

 

   //tlačítko Zavřít

   BtnClose := TButton.Create(Frm); //BtnClose bude uvolněn při zániku Frm

   BtnClose.Caption := 'Zavřít';

   BtnClose.Left := 200;

   BtnClose.Top := 140;

   BtnClose.Cancel := True; //bude reagovat na klávesu Esc

   BtnClose.Anchors := akRight+akBottom; //bude se držet pravého dolního rohu

   BtnClose.Parent := Frm;

   BtnClose.OnClick := @BtnClick;

 

   //zobraz form nemodálně

   Frm.Show;

 except

   Frm.Free;

   RaiseException(ExceptionMessage);

 end;

end.

 

 

 

Související témata