GVKun编程网logo

Delphi 设置文本框中光标的位置在最后(delphi 设置文本框中光标的位置在最后怎么设置)

7

本文将带您了解关于Delphi设置文本框中光标的位置在最后的新内容,同时我们还将为您解释delphi设置文本框中光标的位置在最后怎么设置的相关知识,另外,我们还将为您提供关于c#–当文本框为空时,如何

本文将带您了解关于Delphi 设置文本框中光标的位置在最后的新内容,同时我们还将为您解释delphi 设置文本框中光标的位置在最后怎么设置的相关知识,另外,我们还将为您提供关于c# – 当文本框为空时,如何在文本框中设置文本以显示提示?、delphi – 如何在编辑控件中偏移光标的位置?、delphi – 如何在编辑框中隐藏密码文本?、delphi – 如何将文本作为拖动光标?的实用信息。

本文目录一览:

Delphi 设置文本框中光标的位置在最后(delphi 设置文本框中光标的位置在最后怎么设置)

Delphi 设置文本框中光标的位置在最后(delphi 设置文本框中光标的位置在最后怎么设置)

总结

以上是小编为你收集整理的Delphi 设置文本框中光标的位置在最后全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

c# – 当文本框为空时,如何在文本框中设置文本以显示提示?

c# – 当文本框为空时,如何在文本框中设置文本以显示提示?

我正在使用< asp:TextBox>不是 HTML文本框,我想显示提示文本.

有没有办法实现这一目标?

我已经尝试制作静态文本并将其着色为灰色,但是当光标聚焦到该文本框时却没有得到如何使其变空.

解决方法

<asp:TextBox ID="TextBox1" runat="server" placeholder="Hint Text"></asp:TextBox>

delphi – 如何在编辑控件中偏移光标的位置?

delphi – 如何在编辑控件中偏移光标的位置?

我正在构建一个自定义编辑控件,它包括在左侧添加一个图标和在右侧添加一个图标按钮,两者都在编辑控件内.这需要将文本(和光标)的起点向右移动X个像素量.这也意味着我需要“限制”文本的绘制范围,以便为右侧的按钮腾出空间.目的是在左侧提供自定义图标,例如在浏览器中,以及在右侧提供“X”按钮以清除编辑控件的内容.

如何偏移在TCustomEdit后代中绘制文本和光标的位置的Rect?

解决方法

如果您使用的是更新版本的Delphi,那么应该已经有了TButtonedEdit控件并可以完成您的工作.

如果没有,我认为您可以向TCustomEdit发送EM_SETMARGINS消息以设置左右边距.

SendMessage(CustomEdit.Handle,EM_SETMARGINS,EC_LEFTMARGIN or EC_RIGHTMARGIN,MakeLong(LeftMargin,RightMargin));

delphi – 如何在编辑框中隐藏密码文本?

delphi – 如何在编辑框中隐藏密码文本?

我有一个输入框,并希望用户输入密码,但同时隐藏它.

这可能吗?

这是我的代码到目前为止

var password : string;
begin
 password := InputBox('Password: ','Please enter your password: ',password)
end;

解决方法

你不能’使用InputBox这样做,因为…很明显这个功能不会隐藏文本.

但标准的Windows编辑控件具有“密码模式”.要测试这个,只需将一个TEdit添加到窗体并将其PasswordChar设置为*.

如果你想在输入框中使用这样一个编辑,你必须自己写这个对话框,就像我的“超级输入对话框”一样:

type
  TMultiInputBox = class
  strict private
    class var
      frm: TForm;
      lbl: TLabel;
      edt: TEdit;
      btnOK,btnCancel: TButton;
      shp: TShape;
      FMin,FMax: integer;
      FTitle,FText: string;
    class procedure SetupDialog;
    class procedure ValidateInput(Sender: TObject);
  public
    class function TextInputBox(AOwner: TCustomForm; const ATitle,AText: string; var Value: string): boolean;
    class function NumInputBox(AOwner: TCustomForm; const ATitle,AText: string; AMin,AMax: integer; var Value: integer): boolean;
    class function PasswordInputBox(AOwner: TCustomForm; const ATitle,AText: string; var Value: string): boolean;
  end;

class procedure TMultiInputBox.SetupDialog;
begin
  frm.Caption := FTitle;
  frm.Width := 512;
  frm.Position := poOwnerFormCenter;
  frm.BorderStyle := bsDialog;
  lbl := TLabel.Create(frm);
  lbl.Parent := frm;
  lbl.Left := 8;
  lbl.Top := 8;
  lbl.Width := frm.ClientWidth - 16;
  lbl.Caption := FText;
  edt := TEdit.Create(frm);
  edt.Parent := frm;
  edt.Top := lbl.Top + lbl.Height + 8;
  edt.Left := 8;
  edt.Width := frm.ClientWidth - 16;
  btnOK := TButton.Create(frm);
  btnOK.Parent := frm;
  btnOK.Default := true;
  btnOK.Caption := 'OK';
  btnOK.ModalResult := mrOk;
  btnCancel := TButton.Create(frm);
  btnCancel.Parent := frm;
  btnCancel.Cancel := true;
  btnCancel.Caption := 'Cancel';
  btnCancel.ModalResult := mrCancel;
  btnCancel.Top := edt.Top + edt.Height + 16;
  btnCancel.Left := frm.ClientWidth - btnCancel.Width - 8;
  btnOK.Top := btnCancel.Top;
  btnOK.Left := btnCancel.Left - btnOK.Width - 4;
  frm.ClientHeight := btnOK.Top + btnOK.Height + 8;
  shp := TShape.Create(frm);
  shp.Parent := frm;
  shp.Brush.Color := clWhite;
  shp.Pen.Style := psClear;
  shp.Shape := stRectangle;
  shp.Align := alTop;
  shp.Height := btnOK.Top - 8;
  shp.SendToBack;
end;

class function TMultiInputBox.TextInputBox(AOwner: TCustomForm; const ATitle,AText: string; var Value: string): boolean;
begin
  FTitle := ATitle;
  FText := AText;

  frm := TForm.Create(AOwner);
  try
    SetupDialog;
    edt.NumbersOnly := false;
    edt.PasswordChar := #0;
    edt.Text := Value;
    edt.OnChange := nil;
    result := frm.ShowModal = mrOK;
    if result then Value := edt.Text;
  finally
    frm.Free;
  end;
end;

class function TMultiInputBox.PasswordInputBox(AOwner: TCustomForm;
  const ATitle,AText: string; var Value: string): boolean;
begin
  FTitle := ATitle;
  FText := AText;

  frm := TForm.Create(AOwner);
  try
    SetupDialog;
    edt.NumbersOnly := false;
    edt.PasswordChar := '*';
    edt.Text := Value;
    edt.OnChange := nil;
    result := frm.ShowModal = mrOK;
    if result then Value := edt.Text;
  finally
    frm.Free;
  end;
end;

class procedure TMultiInputBox.ValidateInput(Sender: TObject);
var
  n: integer;
begin
  btnOK.Enabled := TryStrToInt(edt.Text,n) and InRange(n,FMin,FMax);
end;

class function TMultiInputBox.NumInputBox(AOwner: TCustomForm; const ATitle,AMax: integer; var Value: integer): boolean;
begin
  FMin := AMin;
  FMax := AMax;
  FTitle := ATitle;
  FText := AText;

  frm := TForm.Create(AOwner);
  try
    SetupDialog;
    edt.NumbersOnly := true;
    edt.PasswordChar := #0;
    edt.Text := IntToStr(value);
    edt.OnChange := ValidateInput;
    result := frm.ShowModal = mrOK;
    if result then Value := StrToInt(edt.Text);
  finally
    frm.Free;
  end;
end;

尝试一下:

procedure TForm1.Button1Click(Sender: TObject);
var
  str: string;
begin
  str := '';
  if TMultiInputBox.PasswordInputBox(Self,'Password','Please enter your password:',str) then
    ShowMessageFmt('You entered %s.',[str]);
end;

Screenshot http://privat.rejbrand.se/superinputdlgpsw.png

delphi – 如何将文本作为拖动光标?

delphi – 如何将文本作为拖动光标?

在两个组件之间拖放文本时,是否有一种简单的方法来显示我拖动的文本作为拖动光标?

解决方法

要从列表框中拖动项目,并将其文本表示与拖动光标一起显示:

type
  TTextDragObject = class(TDragControlObjectEx)
  private
    fdragImages: TDragImageList;
    FText: String;
  protected
    function GetDragImages: TDragImageList; override;
  end;

{ TTextDragObject }

function TTextDragObject.GetDragImages: TDragImageList;
var
  Bmp: TBitmap;
begin
  if fdragImages = nil then
  begin
    fdragImages := TDragImageList.Create(Control);
    Bmp := TBitmap.Create;
    try
      Bmp.Width := Bmp.Canvas.TextWidth(FText);
      Bmp.Height := Bmp.Canvas.TextHeight(FText);
      Bmp.Canvas.textout(0,FText);
      fdragImages.Width := Bmp.Width;
      fdragImages.Height := Bmp.Height;
      fdragImages.SetDragImage(fdragImages.Add(Bmp,nil),0);
    finally
      Bmp.Free;
    end;
  end;
  Result := fdragImages;
end;

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  ControlStyle := ControlStyle + [csdisplayDragImage];
  ListBox1.ControlStyle := ListBox1.ControlStyle + [csdisplayDragImage];
end;

procedure TForm1.ListBox1StartDrag(Sender: TObject;
  var DragObject: TDragObject);
var
  List: TListBox absolute Sender;
begin
  DragObject := TTextDragObject.Create(List);
  if List.ItemIndex > -1 then
    TTextDragObject(DragObject).FText := List.Items[List.ItemIndex];
end;

关于Delphi 设置文本框中光标的位置在最后delphi 设置文本框中光标的位置在最后怎么设置的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于c# – 当文本框为空时,如何在文本框中设置文本以显示提示?、delphi – 如何在编辑控件中偏移光标的位置?、delphi – 如何在编辑框中隐藏密码文本?、delphi – 如何将文本作为拖动光标?等相关知识的信息别忘了在本站进行查找喔。

本文标签: