Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TEdit - Textbereich eingrenzen (https://www.delphipraxis.net/107107-tedit-textbereich-eingrenzen.html)

der_kumpel 22. Jan 2008 15:58


TEdit - Textbereich eingrenzen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,


hab gerade ein Problem bei der Formulierung meines Problems,
darum verweise ich gleich mal auf das Bild im Anhang. :?

Wie kann ich also den Bereich von rechts "abgrenzen",
sodass das Eingabefeld ab dort zuende ist und rechts ein freier Bereich bleibt?

Kann mir jemand nen Tipp geben wie man da rangehen kann?
Könnt auch ne andere Komponente sein...


Danke schonmal,
kumpel

DeddyH 22. Jan 2008 15:59

Re: TEdit - Textbereich eingrenzen
 
Meinst Du MaxLength?

der_kumpel 22. Jan 2008 16:54

Re: TEdit - Textbereich eingrenzen
 
Danke für deinen Vorschlag, aber das ist es leider nicht.

Egal, wieviel in dem Edit drinsteht, es soll rechts immer ein Rand bleiben,
als ob dort schon das Edit zu Ende ist.

DeddyH 22. Jan 2008 16:58

Re: TEdit - Textbereich eingrenzen
 
Ich kann es gerade nicht ausprobieren, aber ginge das evtl. durch künstliches Anfügen von Leerzeichen?

Die Muhkuh 22. Jan 2008 17:15

Re: TEdit - Textbereich eingrenzen
 
Darf man erfahren, was das bringen soll?

DeddyH 22. Jan 2008 17:17

Re: TEdit - Textbereich eingrenzen
 
Gut, das habe ich mich auch schon gefragt :zwinker:

Die Muhkuh 22. Jan 2008 17:21

Re: TEdit - Textbereich eingrenzen
 
Zitat:

Zitat von DeddyH
Gut, das habe ich mich auch schon gefragt :zwinker:

Dann hättest es halt mal geposted, Du Nase :tongue:

DeddyH 22. Jan 2008 17:30

Re: TEdit - Textbereich eingrenzen
 
[OT] Bei meinen Codes fragt man sich ja auch manchmal nach dem tieferen Sinn :mrgreen: [/OT]

toms 22. Jan 2008 18:28

Re: TEdit - Textbereich eingrenzen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo

Um den Bereich rechts einzugrenzen, müssen wir die Grösse der NCA neu berechnen.
Wenn WM_NCCALCSIZE gesendet wird, machen wir die neue Berechnung.
Zusätzlich behandeln wir noch WM_NCPAINT, damit das normale Aussehen des Edits wieder
hergestellt wird.

Eine vereinfachte Komponente könnte so aussehen:

Delphi-Quellcode:
unit BorderEdit;

interface

uses
  Windows, Messages, Classes, Controls, StdCtrls, Graphics;

type
  TBorderEdit = class(TEdit)
  private
   procedure WMNCCalcSize(var Message: TWMNCCalcSize); message WM_NCCALCSIZE;
   procedure WMNCPaint(var Msg : TWMNCPaint); message WM_NCPAINT;
   procedure NCPaint(ACanvas : TCanvas);
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TBorderEdit]);
end;

procedure TBorderEdit.WMNCCalcSize (var Message: TWMNCCalcSize);
begin
  inherited;
  Dec(Message.CalcSize_Params^.rgrc[0].Right, 15);
end;

procedure TBorderEdit.NCPaint(ACanvas : TCanvas);
begin
  ACanvas.Pen.Color := clWindow;
  ACanvas.Brush.Color := clWindow;
  ACanvas.Rectangle(Rect(3,2, Width-2, Height-2));
end;

procedure TBorderEdit.WMNCPaint(var Msg: TWMNCPaint);
var
  Canvas : TCanvas;
  DC : HDC;
begin
  inherited;
  Canvas := TCanvas.Create;
  DC := GetWindowDC(Handle);
  try
    Canvas.Handle := DC;
    NCPaint(Canvas);
    Invalidate;
  finally
    ReleaseDC(Handle, DC);
    Canvas.Free;
  end;
end;

end.

der_kumpel 22. Jan 2008 20:38

Re: TEdit - Textbereich eingrenzen
 
Genau das hab ich gemeint.

Vielen, vielen Dank, toms! :thumb:

Edit, @ Die Muhkuh:
Da kommt eine CheckBox rein. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz