[Lazarus] Need help with TValueListEditor
Howard Page-Clark
hdpc at talktalk.net
Sat Jan 14 21:03:14 CET 2012
On 14/1/12 5:59, Hans-Peter Diettrich wrote:
> Where can I find sample code for this control?
>
> I want to initialize the content with key/value pairs in code, track
> changes and/or save the content in OnExit when Modified. Here I ran into
> any number of quirks and bugs :-(
>
> E.g. the code does not check properly for I<0 in various methods, after
> subtracting the number of fixed rows/cols, resulting in list index
> exceptions.
>
> When the user edits the fields, Modified seems to be set only when a new
> key is added, but not when a value is changed?
Indeed, if you drop a memo and valueListEditor on Form1 and add two
buttons named btnCopyMemoToValueList and btnCopyValueListToMemo with the
following event handlers you can see one of the bugs immediately:
procedure TForm1.FormCreate(Sender: TObject);
begin
ValueListEditor1.Strings.Text :=
'one=1'+LineEnding+'two=2'+LineEnding+'three=3'+LineEnding+'four=4';
memo1.Lines.Text :=
'Afghanistan=Kabul'+LineEnding+'Albania=Tirane'+LineEnding+'Algeria=Algiers'+
LineEnding+'Angola=Luanda'+LineEnding+'Armenia=Yerevan'+LineEnding+
'Australia=Canberra'+LineEnding+'Austria=Vienna'+'Azerbaijan=Baku'+LineEnding;
end;
procedure TForm1.btnCopyMemoToValueListClick(Sender: TObject);
begin
ValueListEditor1.Strings.Assign(Memo1.Lines);
ValueListEditor1.Invalidate;
end;
procedure TForm1.btnCopyValueListToMemoClick(Sender: TObject);
begin
Memo1.Lines.Assign(ValueListEditor1.Strings);
Memo1.Invalidate;
end;
Perhaps no one has used this component before (I hadn't) to see that it
is rather buggy?
More information about the Lazarus
mailing list