![]() |
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 |
Re: TEdit - Textbereich eingrenzen
Meinst Du MaxLength?
|
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. |
Re: TEdit - Textbereich eingrenzen
Ich kann es gerade nicht ausprobieren, aber ginge das evtl. durch künstliches Anfügen von Leerzeichen?
|
Re: TEdit - Textbereich eingrenzen
Darf man erfahren, was das bringen soll?
|
Re: TEdit - Textbereich eingrenzen
Gut, das habe ich mich auch schon gefragt :zwinker:
|
Re: TEdit - Textbereich eingrenzen
Zitat:
|
Re: TEdit - Textbereich eingrenzen
[OT] Bei meinen Codes fragt man sich ja auch manchmal nach dem tieferen Sinn :mrgreen: [/OT]
|
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. |
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 09:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz