Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Edit mit grauem Text vorbelegen (https://www.delphipraxis.net/177759-edit-mit-grauem-text-vorbelegen.html)

d7user1 26. Nov 2013 09:35

Edit mit grauem Text vorbelegen
 
hallo, ich habe die suche schon bemüht, konnte aber keine zufriedenstellende antwort finden.
ich suche eine möglichkeit, ein Edit mit einem grauem Text vorzubelegen, insofern das Edit keinen Text besitzt.

bisher benutze ich folgendes
Delphi-Quellcode:
// source: http://www.delphigroups.info/2/12/273167.html

function setCueBanner(CTRL: THandle; STR: WideString): Integer;
const
 ECM_FIRST = $1500;
 EM_SETCUEBANNER = ECM_FIRST + 1;
begin
 Result := SendMessage(CTRL, EM_SETCUEBANNER, 0, LParam(PWideChar(STR)));
end;
das funktioniert ganz gut. aber wenn ich in das Edit reinklicke, verschwindet der graue text. gibt es eine möglichkeit, den text nicht verschwinden zu lassen und gleichzeitig einen blinkenden cursor anzeigen zu lassen, solange, bis der benutzer einen text eingibt?

Der schöne Günther 26. Nov 2013 09:38

AW: Edit mit grauem Text vorbelegen
 
Du hast dir die offizielle Doku zu EM_SETCUEBANNER angesehen?

d7user1 26. Nov 2013 09:47

AW: Edit mit grauem Text vorbelegen
 
danke, genau das war es was gefehlt hat. das lehrt mich, die dokus in zukunft anzusehen.

himitsu 26. Nov 2013 10:07

AW: Edit mit grauem Text vorbelegen
 
Deine Überschrift ist falsch.
> Das mit dem "Vorbelegen" hast du garnicht gefragt, da es ja schon funktionierte.

Aber falls nochjemand das Problem hat, aber den TextHint-Property in neueren Edits nutzen möchte.
Delphi-Quellcode:
TCustomEdit = class(TWinControl)
  procedure DoSetTextHint(const Value: string); virtual;
Der muß diese Methode überschreiben und bei WPARAM eine 1 angeben, bzw. dort mal ein
Delphi-Quellcode:
Ord(True)
angeben, bzw. eine entsprechende Variable/Property einbauen.

d7user1 26. Nov 2013 10:19

AW: Edit mit grauem Text vorbelegen
 
Delphi-Quellcode:
TCustomEdit = class(TWinControl)
  procedure DoSetTextHint(const Value: string); virtual;
wo ist denn der unterschied zwischen meiner lösung und deiner? das verstehe ich nicht.

himitsu 26. Nov 2013 13:07

AW: Edit mit grauem Text vorbelegen
 
Es gibt für dich keinen Unterschied, da TextHint in Delphi 7 noch nicht vorhanden ist.
In neueren Delphis (irgendwann ab/nach Delphi 2006) wurde EM_SETCUEBANNER in die VCL integriert und über Delphi-Referenz durchsuchenTEdit.TextHint bereitgestellt.

Es ist nur, wenn nochmal jemand irgendwann das gleich Problem hat, zufällig sogar die Forensuche benutzt und dann hier landet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 Uhr.

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