Difference between revisions of "TEdit"
Line 43: | Line 43: | ||
In using pure WinAPI, this can be achieved by using EM_SETMARGINS message: | In using pure WinAPI, this can be achieved by using EM_SETMARGINS message: | ||
<source lang="delphi"> | <source lang="delphi"> | ||
− | SendMessage(Handle, EM_SETMARGINS, EC_RIGHTMARGIN, MakeLParam(0, button1.Width)) | + | SendMessage(Handle, EM_SETMARGINS, EC_LEFTMARGIN or EC_RIGHTMARGIN, MakeLParam(0, button1.Width)) |
</source> | </source> | ||
Revision as of 05:07, 27 January 2020
│
Deutsch (de) │
English (en) │
suomi (fi) │
français (fr) │
日本語 (ja) │
русский (ru) │
A TEdit is a control with a single line of editable text. It is available from the Standard tab of the Component Palette.
Usage
You can add to your form a TEdit input box add by clicking on it at the Standard component palette and place it on your form with one click. You can now edit this single-line text box at run time.
Want you this text elsewhere have, you can read this text, like every other String.
For example, you have a TEdit Edit1 on your form placed, you can use myString: = Edit1.Text;
. To change the shown Text in Edit1, you can use Edit1.Text := myString;
.
If you want to display another text instead of the default text (e.g. Edit1) in a TEdit Edit1 at the start of your application, you can proceed as follows:
- Select the TEdit on your form with one click.
- Go to the properties tab in the Object Inspector.
- Select the property Text and change it in the next input box.
- In the same way, you can select the property Name and give the TEdit a better name.
Password input
You can also easily use a TEdit to enter passwords. It is then instead of actually entered Char a PasswordChar displayed.
Little Example:
- Create a new GUI application with a TEdit Edit1 and a TButton Button1 on the form.
- In the Object Inspector set the property PasswordChar of Edit1 to a " * ".
- In the event handler of OnClick of Button1 show the entered password:
ShowMessage(Edit1.Text);
Requested Features
Embedding Button/Other Controls in TEdit
It's a WinAPI feature to allow embedding any sorts of controls into TEdit.
Considerations.
- The feature is not supported by all Widgetsets natively. For example: for Gtk2/Gtk3 it's not possible, as GtkEntry is not derived from a container. SpinEdit control is a special kind of control in Gtk2. (This the main reason on why TSpinEdit has it's own WS class).
- The placement of an embedded control (or controls) cannot be set by Left or Top properties (as it's normally happening). Instead "Align" property should be used.
button1.Parent:=edit1;
button1.Width:=20;
button1.Align:=alRight;
button1.Constraints.MaxHeight:=18; //edit1.Height;
- The "text" entry field (so the entered text doesn't go "below" the embedded button) must be limited by some TEdit property.
In using pure WinAPI, this can be achieved by using EM_SETMARGINS message:
SendMessage(Handle, EM_SETMARGINS, EC_LEFTMARGIN or EC_RIGHTMARGIN, MakeLParam(0, button1.Width))
See also
- TEdit doc
- TMemo - A multiline text edit box
- TLabeledEdit - An edit field like a TEdit with a label
- TMaskEdit - An edit field with an edit mask
- TSpinEdit - An edit field for integers defined numbers range limits
- TFloatSpinEdit - An edit field for tiles floating-point numbers with defined numbers range limits
- TEditButton - An edit field like a TEdit with an attached button as a TSpeedBtn
- TFileNameEdit - An edit field with attached TOpenDialog, to enter a file name
- TDirectoryEdit - An edit field with attached TSelectDirectoryDialog, to enter a file path
- TDateEdit - An edit field with attached TCalendarDialog (calendar), to enter a date
- TCalcEdit - An input field with attached TCalculatorDialog (Calculator), to enter a number
- TTIEdit - An RTTI capable input field