![]() |
TEdit zeigt TextHint nicht an, wenn ReadOnly = True
Delphi-Quellcode:
ist bei
TextHint
Delphi-Quellcode:
-Feldern eine nette Eigenschaft, dass man in einem Edit-Feld in grau einen Hinweis-Text einblendet, solange der Benutzer da noch nichts eingegeben hat.
TEdit
Kann ich das TextHint trotzdem anzeigen lassen, auch wenn das Edit-Feld auf
Delphi-Quellcode:
gesetzt ist?
ReadOnly = True
|
AW: TEdit zeigt TextHint nicht an, wenn ReadOnly = True
Ich fürchte, das wird nicht so einfach sein. Das Verhalten ist offenbar intern im Windows-Control so implementiert und lässt sich offenbar nicht ändern.
|
AW: TEdit zeigt TextHint nicht an, wenn ReadOnly = True
Jupp, da wirst du leider das Edit ableiten müssen und den Text selbst malen (nur wenn ReadOnly und Text='', sonst einfach den Default-Painter lassen).
Es gibt bestimmt auch noch irgendwo Beiträge im Netz, wo jemand das Paint vom TEdit überschrieben hat, um "früher" ein ähnliches Verhalten zu implementieren. Wenn der Text nicht selektier und kopierbar sein muß, dann ein unsichtbares TPanel drumrum (BevelOuter=bvNone und auch Caption leer und/oder ShowCaption=False) und am Ende Panel.Enabled=False anstatt Edit.ReadOnly=True. Alternativ schauen, was passiert, wenn du einen VCL-Style nutzt (muß nicht für alles, ginge auch nur für dieses Control) ... dort im Style dieses Verhalten anpassen (müsste es dort ja was für diesen Fall geben). |
AW: TEdit zeigt TextHint nicht an, wenn ReadOnly = True
Danke, so kompliziert wollte ich es gar nicht machen.
Dann hat das Ding halt keinen TextHint. Oder, da es eh readonly ist, schreibe ich selbst Text rein und mache
Delphi-Quellcode:
oder sowas 😉
.Font.Color := TColors.Gray
|
AW: TEdit zeigt TextHint nicht an, wenn ReadOnly = True
Statt ReadOnly und TextHint
einfach Disabled und (bissl dunkelgrauerer) Text. :stupid: |
AW: TEdit zeigt TextHint nicht an, wenn ReadOnly = True
Das ist als Eingabeaufforderung gedacht. Insofern ist es irreführend, wenn ein solcher Cue Banner da ist, man aber gar nichts eingeben kann. Daher wird das entsprechend dann nicht angezeigt.
|
AW: TEdit zeigt TextHint nicht an, wenn ReadOnly = True
Ein Hinweis wie 'Aktuelle keine Eingabe möglich, da der Hund noch nicht gefüttert wurde' könnte aber durchaus für den Nutzer hilfreich sein.
|
AW: TEdit zeigt TextHint nicht an, wenn ReadOnly = True
Aber es nervt auch, wenn man reingeklickt hat, nicht mehr weiß, was man eintippen soll und dann erstmal wieder raus muß, um es lesen zu können.
Ist ja fast so schlimm, wie wenn die ListBox die Markierung nicht mehr zeigt, wenn der Fokus raus ist. :freak: |
AW: TEdit zeigt TextHint nicht an, wenn ReadOnly = True
Zitat:
Delphi-Quellcode:
type
TEdit = class(Vcl.StdCtrls.TEdit) protected procedure DoSetTextHint(const Value: string); override; end; procedure TEdit.DoSetTextHint(const Value: string); begin if CheckWin32Version(5, 1) and StyleServices(Self).Enabled and HandleAllocated then SendTextMessage(Handle, EM_SETCUEBANNER, WPARAM(1), Value); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:00 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 by Thomas Breitkreuz