6

Delphi 2010 の使用

SQLQuery1.First; // move to the first record
while(not SQLQuery1.EOF)do begin
   // do something with the current record
   // What's the code should i write in this part in order to create a TEdit
   // containing the user fullname the current item.
   ShowMessage(SQLQuery1['whom']);
   SQLQuery1.Next; // move to the next record
end;
4

4 に答える 4

6

を作成するTEditには、次の手順を実行する必要があります。

操作する変数を作成します。ローカル変数またはクラス メンバーのいずれか。

Edit: TEdit;

次に、それを構築します。

Edit := TEdit.Create(Self);

コンストラクターへのパラメーターは所有者です。これにより、所有者が破棄されたときにコントロールが破棄されることが保証されます。私の仮定は、それSelfがフォームです。

ここで、コントロールに親を与える必要があります。

Edit.Parent := Self;

あるいは、パネル上にあるかもしれません。

Edit.Parent := StatusPanel;

最後に、テキストを設定します。

Edit.Text := SQLQuery1['whom']);

Captionラベルでは、プロパティではなくプロパティを使用することを除いて、すべて非常に似ていますText

また、他のプロパティを設定したいと思うでしょうが、その方法はすでに知っていると思います。

于 2011-12-16T11:03:13.660 に答える
4

また、コンポーネントを視覚的に設計し、GExperts Components to Code エキスパートを使用して、フォーム デザイナーから再度削除することもできます。ラベル/編集のペアの場合、これは次のようになります

var
  Edit1: TEdit;
  Label1: TLabel;

  Edit1 := TEdit.Create(Self);
  Label1 := TLabel.Create(Self);

  Edit1.Name := 'Edit1';
  Edit1.Parent := Self;
  Edit1.Left := 344;
  Edit1.Top := 172;
  Edit1.Width := 121;
  Edit1.Height := 21;
  Edit1.TabOrder := 0;
  Edit1.Text := 'Edit1';
  Label1.Name := 'Label1';
  Label1.Parent := Self;
  Label1.Left := 296;
  Label1.Top := 176;
  Label1.Width := 65;
  Label1.Height := 17;
  Label1.Caption := 'Label1';
  Label1.FocusControl := Edit1;

ほとんどの場合、再加工が必要です (TabOrder 行を削除し、左/上/... を SetBounds、Align、または独自のロジックに置き換えます...)。一部のプロパティ/コンポーネントではまったく機能しません。 . しかし、その方法で多くの時間を節約できます。

于 2011-12-16T11:12:47.570 に答える
3
Var
  AnEdit : TEdit;
Begin
  AnEdit := TEdit.Create(self);
  AnEdit.Parent := self; // or some suitable container compoent e.g GroupBox, Panel
  AnEdit.Top := ?;
  AnEdit.Left := ?
  // any other properties you weant to set.
End;

人々を捕まえるのは、親の設定です。

于 2011-12-16T11:07:01.833 に答える