2015-10-04 9 views

risposta

14

È possibile verificare per fsModal in FormState al onShowEvent del modulo.

Ti ho fatto un piccolo esempio:

Creare un nuovo progetto e aggiungere un modulo aggiuntivo ad esso. Nella maschera principale posizionare due pulsanti, e far loro visualizzano il secondo modulo:

uses Unit2; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
    Form2.Show; 
end; 

procedure TForm1.Button2Click(Sender: TObject); 
begin 
    Form2.ShowModal; 
end; 

Niente magia qui: D

quindi aggiungere un OnShowEvent alla Form2:

procedure TForm2.FormShow(Sender: TObject); 
    begin 
     if fsModal in FormState then 
     Caption := 'ShowModal' 
     else 
     Caption := 'Show';  
    end; 

che dovrebbe fare il trucco per te.

+4

in C++ Builder, potrei verificare con 'if (FormState.Contains (fsModal)) {' – sevenOfNine