Difference between revisions of "TEdit"
Line 44: | Line 44: | ||
If using pure WinAPI, this can be achieved by using EM_SETMARGINS message: | If using pure WinAPI, this can be achieved by using EM_SETMARGINS message: | ||
<source lang="delphi"> | <source lang="delphi"> | ||
− | SendMessage(Handle, EM_SETMARGINS, EC_LEFTMARGIN or EC_RIGHTMARGIN, MakeLParam(0, button1.Width)) | + | uses |
+ | Windows, ... | ||
+ | |||
+ | ... | ||
+ | SendMessage(Edit1.Handle, EM_SETMARGINS, EC_LEFTMARGIN or EC_RIGHTMARGIN, MakeLParam(0, button1.Width)) | ||
</source> | </source> | ||
Revision as of 05:13, 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
- OR this should be done automatically by the widgetset.
If using pure WinAPI, this can be achieved by using EM_SETMARGINS message:
uses
Windows, ...
...
SendMessage(Edit1.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