Using 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;
Well, to create a TEdit
you need to do the following:
Create a variable to work with. Either a local variable or a class member.
Edit: TEdit;
Then you construct it.
Edit := TEdit.Create(Self);
The parameter to the constructor is the owner. This ensures that the control is destroyed when its owner is destroyed. My assumption is that Self
is a form.
Now you need to give the control a parent.
Edit.Parent := Self;
Or perhaps it's on a panel.
Edit.Parent := StatusPanel;
Finally, you set the text.
Edit.Text := SQLQuery1['whom']);
With a label it's all very similar except that you use the Caption
property rather than the Text
property.
And you will surely want to set other properties but I guess you already know how to do that.
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;
The bit that catches people out is setting parent.
You can also design the components visually, use the GExperts Components to Code expert on them and then delete them from the form designer again. For a label/edit pair this gives something like
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;
Most of the times it needs some reworking (remove the TabOrder lines, replace the Left/Top/... stuff by SetBounds, Align or your own logic, ...) and for some properties/components it doesn't work at all. But you can save a lot of time that way.
with TEdit.Create(self) do
begin
Parent:= ... // The name of the panel or form, on which you would like to place TEdit
Text:= 'your text';
// And you could set its position by giving "Left" and/or "Width", so on..
end;