Edit: Linken und rechten Rand setzen

Mit der folgende Prozedur setzt man den linken und rechten Randabstand eines Edit-Steuerelements.

  • Der Parameter EditHandle ist das Handle des Edit-Steuerelements, also z.B Edit1.Handle.

  • Der Parameter LeftMargin gibt den linken Randabstand an. Der Wert -1 kann benutzt werden um den linken Rand nicht zu verändern.

  • Der Parameter RightMargin gibt den rechten Randstand an. Der Wert -1 kann benutzt werden um den rechten Rand nicht zu verändern.

Die Prozedur kann schon in FormCreate aufgerufen werden. Der Aufruf muss nach jeder Änderung der Schriftart wiederholt werden, da die VCL die Ränder dann zurücksetzt.

procedure SetEditMargins(EditHandle: THandle; LeftMargin: Integer = -1;
  RightMargin: Integer = -1);
var
  code: Integer;
begin
  code := 0;
  if LeftMargin <> -1 then
    code := code or EC_LEFTMARGIN
  else
    LeftMargin := 0;
  if RightMargin <> -1 then
    code := code or EC_RIGHTMARGIN
  else
    RightMargin := 0;
  if code = 0 then
    code := EC_USEFONTINFO;
  SendMessage(Edit.Handle, EM_SETMARGINS, code, MAKELONG(LeftMargin, RightMargin));
end;

Die aktuell gesetzten Randabstände ermittelt die folgende Prozedur:

procedure GetEditMargins(EditHandle: THandle; var LeftMargin, RightMargin: Integer);
var
  margins: Integer;
begin
  margins := SendMessage(Edit.Handle, EM_GETMARGINS, 0, 0);
  LeftMargin := LOWORD(margins);
  RightMargin := HIWORD(margins);
end;
Flocke's Garage
Valid HTML 4.01 Transitional Valid CSS!
(C) 2005-2018 Volker Siebert.
Creative Commons-LizenzvertragDer gesamte Inhalt dieser Webseite steht unter einer Creative Commons-Lizenz (sofern nicht anders angegeben).