On 01.05.2020 23:36, Juha Manninen via lazarus wrote:
I applied my own patch. It removes the deprecated published property so it will be gone in Lazarus 2.2. A public ReadOnly property remains but is cannot be assigned any more. Thus ReadOnly property is itself readonly. :)
Please test.

From what I can see the ReadOnly property is still published. I would remove it completely, there is no reason to have it anymore if it was deprecated for 3 years. Not even in the public section. (Again, even with ReadOnly=True you can still change the value with the drop down.)

As for Jamie's issue. I took a look at the state before I deprecated it and it was a way to disable editing for csOwnerDrawFixed, csOwnerDrawVariable styles - so actually a duplicate property for the Style property. It had no other function.

It was not an equivalent for a "readonly edit" (=you can select text but cannot change it by typing) and enabled drop-down list. Something that can be achieved with EM_SETREADONLY as described in http://mc-computing.com/Languages/Delphi/ReadOnly.html

This works in Lazarus as well:
procedure TForm1.Button1Click(Sender: TObject);
begin
  // make combobox read-only (make sure ComboBox1.Style=csDropDown)
  SendMessage(GetWindow(ComboBox1.Handle, GW_CHILD), EM_SETREADONLY, Ord(True), 0);
end;

So, IMO the removal of the ReadOnly property is valid because it was not implemented with EM_SETREADONLY as Jamie expected and was only confusing the way it was implemented.

Ondrej

--
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to