const EM_SETCUEBANNER = $1501; EM_GETCUEBANNER = $1502; function Edit_SetCueBannerText(hwnd: HWND; CueText: PWideChar; ShowOnFocus: Boolean = True): BOOL; begin Result := BOOL(SendMessage(hwnd, EM_SETCUEBANNER, wParam(ShowOnFocus), lParam(CueText))); end; function Edit_GetCueBannerText(hwnd: HWND; CueText: PWideChar; BufLen: Longint): BOOL; begin Result := BOOL(SendMessage(hwnd, EM_GETCUEBANNER, wParam(CueText), lParam(BufLen))); end; // utilisation de Edit_SetCueBannerText procedure TForm1.FormCreate(Sender: TObject); begin Edit_SetCueBannerText(Edit1.Handle, 'Entrez votre Texte ici'); Edit_SetCueBannerText(Edit2.Handle, 'Votre nom'); end; // utilisation de Edit_GetCueBannerText procedure TForm1.Button1Click(Sender: TObject); var aCueTxt: array[0..255] of WideChar; begin if Edit_GetCueBannerText(Edit1.Handle, aCueTxt, 256) then Label1.Caption := aCueTxt; end;
unit crCueBanner; interface uses Windows {$if CompilerVersion < 20.00} // à partir de D2009 vous devez activer les styles les options du projet , XPMan {$else} // à partir de D2009 les fonctions "Edit_SetCueBannerText" & "Edit_GetCueBannerText" // existent déjà. Nous les utiliserons par redirection. , CommCtrl {$ifend}; // fonction étandue permettant le choix ShowOnFocus: Boolean // qui permet ou non de voir le Cue Banner Text quand l'edit à le focus // active pour toutes les versions de Delphi function Edit_SetCueBannerTextEx(hwnd: HWND; CueText: PWideChar; ShowOnFocus: Boolean = True): BOOL;{$if CompilerVersion >= 20.00} inline; {$ifend} {$if CompilerVersion < 20.00} //avant D2009 nous devons les déclarer et les implémenter function Edit_SetCueBannerText(hwnd: HWND; CueText: PWideChar): BOOL; function Edit_GetCueBannerText(hwnd: HWND; CueText: PWideChar; BufLen: Longint): BOOL; {$else} // comme elle existent depuis D2009 type TEdit_SetCueBannerText = function (hwnd: HWND; CueText: PWideChar): BOOL; TEdit_GetCueBannerText = function (hwnd: HWND; CueText: PWideChar; BufLen: Longint): BOOL; // on va les utiliser var Edit_SetCueBannerText: TEdit_SetCueBannerText; Edit_GetCueBannerText: TEdit_GetCueBannerText; {$ifend} implementation const EM_SETCUEBANNER = $1501; EM_GETCUEBANNER = $1502; function Edit_SetCueBannerTextEx(hwnd: HWND; CueText: PWideChar; ShowOnFocus: Boolean = True): BOOL;{$if CompilerVersion >= 20.00} inline; {$ifend} begin Result := BOOL(SendMessage(hwnd, EM_SETCUEBANNER, wParam(ShowOnFocus), lParam(CueText))); end; {$if CompilerVersion < 20.00} function Edit_SetCueBannerText(hwnd: HWND; CueText: PWideChar): BOOL; begin Result := BOOL(SendMessage(hwnd, EM_SETCUEBANNER, wParam(False), lParam(CueText))); end; function Edit_GetCueBannerText(hwnd: HWND; CueText: PWideChar; BufLen: Longint): BOOL; begin Result := BOOL(SendMessage(hwnd, EM_GETCUEBANNER, wParam(CueText), lParam(BufLen))); end; {$else} initialization // redirige les fonctions existantes Edit_SetCueBannerText := @CommCtrl.Edit_SetCueBannerText; Edit_GetCueBannerText := @CommCtrl.Edit_GetCueBannerText; {$ifend} end.
30 déc. 2017 à 16:46
hmdlh kolchi mebroukh ;
je suit fiere de mois mais aussi au membre qui veulent m'aide merci a vous ;
avant tout merci cirec je pense qui il est le meme qui se trouve dans developper.com ;
si ce n'est pas le cas merci a tous;
la solution :attention il faut mettre XPManifest1: TXPManifest; a ton programme sinon il ne marche pas ;
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
XPManifest1: TXPManifest;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
const
EM_SETCUEBANNER = $1501;
EM_GETCUEBANNER = $1502;
implementation
{$R *.dfm}
function Edit_SetCueBannerText(hwnd: HWND; CueText: PWideChar; ShowOnFocus: Boolean = True): BOOL;
begin
Result := BOOL(SendMessage(hwnd, EM_SETCUEBANNER, wParam(ShowOnFocus), lParam(CueText)));
end;
function Edit_GetCueBannerText(hwnd: HWND; CueText: PWideChar; BufLen: Longint): BOOL;
begin
Result := BOOL(SendMessage(hwnd, EM_GETCUEBANNER, wParam(CueText), lParam(BufLen)));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Color:=Clred;
Edit_SetCueBannerText(Edit1.Handle, 'Entrez votre Texte ici');
end;
end.
Cordialement ...