2017-09-14 5 views
0

J'ai une forme (Tform) qui fonctionne bien.Bouton "OK" (TButton) ne s'affiche pas sur Tform (Pascal)

J'ai ajouté un autre formulaire qui montre les objets TEdit et TLabel, mais pas l'objet TButton n'apparaîtra pas sur le formulaire. Le code est ci-dessous.

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; 

Les variables suivantes ont été déclarées globalement:

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

Quelqu'un peut-il me dire pourquoi le bouton n'apparaît pas?

Ceci fait partie d'un script écrit dans un programme appelé Ostendo qui utilise Pascal.

Lorsque vous cliquez sur le bouton, cette procédure est exécutée, uniquement pour les tests. Je vais créer plus de code quand je peux obtenir le bouton OK pour montrer sur le formulaire.

procedure ChkQtyOKClick; 

begin 
    frmChkQty.close; 
end; 

Merci.

Répondre

1

Dans Delphi bouton devient visible lorsque je retire

frmChkQtybtnOK.anchors := [akright]; 

bouton Donc, était vraiment visible, mais ses coordonnées étaient en dehors des limites de forme en raison de recalcul en cours de forme montrant

post-scriptum Déplacer try après