mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-19 14:49:29 +02:00
win32: dont update index for ReadOnly in TWin32WSCustomComboBox.SetText. It's not necessary because index, so the Text, is updated in LCL. The previous implementation was also wrong since could select wrong item, e.g., setting text to 'a' in a combo that has items 'abc', 'a' was selecting 'abc'
git-svn-id: trunk@34120 -
This commit is contained in:
parent
eb7d5b66c7
commit
5f0b15ad52
@ -1020,31 +1020,23 @@ var
|
||||
WideBuffer: widestring;
|
||||
{$endif}
|
||||
begin
|
||||
// not necessary. Change is already done in TCustomComboBox.RealSetText
|
||||
if TCustomComboBox(AWinControl).ReadOnly then
|
||||
Exit;
|
||||
Handle := AWinControl.Handle;
|
||||
{$ifdef WindowsUnicodeSupport}
|
||||
if UnicodeEnabledOS then
|
||||
begin
|
||||
WideBuffer := UTF8ToUTF16(AText);
|
||||
|
||||
if TCustomComboBox(AWinControl).ReadOnly then
|
||||
Windows.SendMessageW(Handle, CB_SELECTSTRING, -1, LPARAM(PWideChar(WideBuffer)))
|
||||
else
|
||||
Windows.SendMessageW(Handle, WM_SETTEXT, 0, LPARAM(PWideChar(WideBuffer)));
|
||||
Windows.SendMessageW(Handle, WM_SETTEXT, 0, LPARAM(PWideChar(WideBuffer)));
|
||||
end
|
||||
else
|
||||
begin
|
||||
AnsiBuffer := UTF8ToAnsi(AText);
|
||||
|
||||
if TCustomComboBox(AWinControl).ReadOnly then
|
||||
Windows.SendMessage(Handle, CB_SELECTSTRING, -1, LPARAM(PChar(AnsiBuffer)))
|
||||
else
|
||||
Windows.SendMessage(Handle, WM_SETTEXT, 0, LPARAM(PChar(AnsiBuffer)));
|
||||
Windows.SendMessage(Handle, WM_SETTEXT, 0, LPARAM(PChar(AnsiBuffer)));
|
||||
end;
|
||||
{$else}
|
||||
if TCustomComboBox(AWinControl).ReadOnly then
|
||||
Windows.SendMessage(Handle, CB_SELECTSTRING, -1, LPARAM(PChar(AText)))
|
||||
else
|
||||
Windows.SendMessage(Handle, WM_SETTEXT, 0, LPARAM(PChar(AText)));
|
||||
Windows.SendMessage(Handle, WM_SETTEXT, 0, LPARAM(PChar(AText)));
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user