diff --git a/lcl/interfaces/wince/wincememostrings.inc b/lcl/interfaces/wince/wincememostrings.inc index 8998ebc985..2de928bbde 100644 --- a/lcl/interfaces/wince/wincememostrings.inc +++ b/lcl/interfaces/wince/wincememostrings.inc @@ -16,7 +16,7 @@ TWinCEMemoStrings = class(TStrings) function GetCount: integer; override; function Get(Index : Integer) : string; override; //procedure SetSorted(Val : boolean); virtual; - procedure SetUpdateState(Updating: Boolean); override; + procedure SetUpdateState(Updating: Boolean); override; public constructor Create(Handle: HWND; TheOwner: TWinControl); destructor Destroy; override; @@ -24,7 +24,7 @@ TWinCEMemoStrings = class(TStrings) procedure Clear; override; procedure Delete(Index : integer); override; procedure Insert(Index : integer; const S: string); override; - procedure SetText(TheText: PChar); override; + procedure SetTextStr(const Value: string); override; //procedure Sort; virtual; public //property Sorted: boolean read FSorted write SetSorted; @@ -148,9 +148,17 @@ begin end; end; -procedure TWinCEMemoStrings.SetText(TheText: PChar); +procedure TWinCEMemoStrings.SetTextStr(const Value: string); +var + Msg: TLMessage; begin - Windows.SetWindowTextW(fHandle, PWideChar(Utf8Decode(TheText))) + if (Value <> Text) then + begin + Windows.SetWindowTextW(fHandle, PWideChar(Utf8Decode(Value))); + FillChar(Msg, SizeOf(Msg), 0); + Msg.Msg := CM_TEXTCHANGED; + DeliverMessage(Owner, Msg); + end; end; {$ENDIF} diff --git a/lcl/interfaces/wince/wincewsstdctrls.pp b/lcl/interfaces/wince/wincewsstdctrls.pp index b514118eeb..8471124ede 100644 --- a/lcl/interfaces/wince/wincewsstdctrls.pp +++ b/lcl/interfaces/wince/wincewsstdctrls.pp @@ -34,7 +34,7 @@ uses {$ifdef Win32}win32compat,{$endif} // RTL, FCL, LCL SysUtils, LCLType, Classes, StdCtrls, Controls, Graphics, Forms, WinCEProc, - InterfaceBase, + InterfaceBase, LMessages, LCLMessageGlue, // Widgetset WSControls, WSStdCtrls, WSLCLClasses, WinCEInt, WinCEWSControls, WinCEExtra, WSProc;