2017-09-14 2 views
0

正常に動作するフォーム(Tform)があります。Tform(Pascal)に「OK」ボタン(TButton)が表示されない

私は、TEditオブジェクトとTLabelオブジェクトを示す別のフォームを追加しましたが、TButtonオブジェクトはフォームに表示されません。コードは以下の通りです。

procedure LoadQtyForm; 

begin 
    try 
    frmChkQty := TForm.Create(nil); 
    frmChkQty.Width := 400; 
    frmChkQty.Height := 200; 
    frmChkQty.Caption := 'Check, Confirm, Change Quantity'; 
    frmChkQty.Position := poScreenCenter; 
    frmChkQty.BorderStyle := bsSingle; 
    frmChkQty.Name := 'SecondaryForm'; 

    { Panel within Form } 
    frmChkQtyTopPnl := TPanel.Create(frmChkQty); 
    frmChkQtyTopPnl.Parent := frmChkQty; 
    frmChkQtyTopPnl.Align := alclient; 

    { OK button } 
    frmChkQtybtnOK := TButton.Create(frmChkQtyTopPnl); 
    //frmChkQtybtnOK := TButton.Create(Self); 
    frmChkQtybtnOK.Parent := frmChkQtyTopPnl; 
    frmChkQtybtnOK.left := 50; //300 
    frmChkQtybtnOK.Top := 50; //170 
    frmChkQtybtnOK.Width := 90; 
    frmChkQtybtnOK.Height := 20; 
    frmChkQtybtnOK.Caption := '&OK'; 
    frmChkQtybtnOK.OnClick := 'ChkQtyOKClick'; 
    //frmChkQtybtnOK.taborder := 98; 
    frmChkQtybtnOK.anchors := akright; 
    //frmChkQtybtnOK.anchors := akbottom; 

    frmChkQtylblfield := TLabel.Create(frmChkQtyTopPnl); 
    frmChkQtylblfield.parent := frmChkQtyTopPnl; 
    frmChkQtylblfield.left := 100; 
    frmChkQtylblfield.top := 40; 
    frmChkQtylblfield.font.size := 12; 
    frmChkQtylblfield.caption := 'Current Laser Cut Qty is '; 

    { To get Qty that was laser cut } 
    frmChkQtyedtfield := TEdit.Create(frmChkQtyTopPnl); 
    frmChkQtyedtfield.parent := frmChkQtyTopPnl; 
    frmChkQtyedtfield.left := 275; 
    frmChkQtyedtfield.top := 80; 
    frmChkQtyedtfield.Width := 50; 
    frmChkQtyedtfield.font.size := 12; 
    frmChkQtyedtfield.Text := '1'; 

    frmChkQtylblfield2 := TLabel.Create(frmChkQtyTopPnl); 
    frmChkQtylblfield2.parent := frmChkQtyTopPnl; 
    frmChkQtylblfield2.left := 100; 
    frmChkQtylblfield2.top := 80; 
    frmChkQtylblfield2.font.size := 12; 
    frmChkQtylblfield2.caption := 'This Laser Cut Qty is:'; 

    { 
    frmChkQtyedtfield2 := TEdit.Create(frmChkQtyTopPnl); 
    frmChkQtyedtfield2.parent := frmChkQtyTopPnl; 
    frmChkQtyedtfield2.left := 285; 
    frmChkQtyedtfield2.top := 40; 
    frmChkQtyedtfield2.Width := 50; 
    frmChkQtyedtfield2.Height := 40; 
    frmChkQtyedtfield2.font.size := 12; 
    frmChkQtyedtfield2.Text := '1'; 
    } 

    frmChkQty.showmodal; 
    finally 
    frmChkQty.Free 
    end; 
end; 

次の変数がグローバルに宣言されています:ボタンが表示されない理由を

//Create Variables for Second form to get/check/confirm quantities 
frmChkQty: Tform; 
frmChkQtyTopPnl:  TPanel; 
frmChkQtybtnOK:  Tbutton; 
frmChkQtylblfield:  TLabel; 
frmChkQtylblfield2: TLabel; 
frmChkQtyedtfield:  TEdit; 
frmChkQtyedtfield2: TEdit; 

誰も教えてもらえますか?

これは、パスカルを使用するOstendoというプログラムで記述されたスクリプトの一部です。

このボタンをクリックすると、この手順が実行されます。これはテスト用です。私はフォーム上に表示するためにOKボタンを得ることができるときに、さらにコードを作成します。

procedure ChkQtyOKClick; 

begin 
    frmChkQty.close; 
end; 

ありがとうございます。私は

frmChkQtybtnOK.anchors := [akright]; 

を削除すると、Delphiのボタンで

答えて

1

が可視になるようにボタンが本当に見られたが、その座標が

P.S.を示すフォームの過程で再計算によるフォーム範囲外でしたTForm.Createの後にtryを移動します。

関連する問題