[Lazarus] ComboBox bug?

Hans-Peter Diettrich DrDiettrich1 at aol.com
Fri Sep 23 22:24:15 CEST 2011


Mattias Gaertner schrieb:
> On Fri, 23 Sep 2011 16:23:02 +0200
> Hans-Peter Diettrich <DrDiettrich1 at aol.com> wrote:
> 
>> Mattias Gaertner schrieb:
>>> Hans-Peter Diettrich <DrDiettrich1 at aol.com> hat am 23. September 2011 um 
>>> 05:40 geschrieben:
>>>
>>>  > Mattias Gaertner schrieb:
>>>  >
>>>  > > procedure TCustomComboBox.UpdateSorted;
>>>  > > var
>>>  > >   lText: string;
>>>  > >   lIndex: integer;
>>>  > > begin
>>>  > >   if HandleAllocated then
>>>  > >     TWSCustomComboBoxClass(WidgetSetClass).Sort(Self, Items, FSorted)
>>>  > >   else if FItems is TStringList then
>>>  > >   begin
>>>  > >     // remember text
>>>  > >     lText := Text;
>>>  > >     TStringList(FItems).Sorted := FSorted;
>>>  > >
>>>  > > When not FSorted then items are not sorted.
>>>  >
>>>  > You're right.
>>>  >
>>>  > But the following then is also evitable (but does no harm):
>>>  >
>>>  > >     lIndex := FItems.IndexOf(lText);
>>>  > >     if lIndex >= 0 then
>>>  > >       ItemIndex := lIndex;
>>>  >
>>>  > What if lIndex=-1?
>>>
>>>  
>>>
>>> Nothing.
>> Obviously - but why?
> 
> What else do you expect to happen?

I wonder e.g. why ItemIndex is not tested before all further processing. 
When nothing has been selected before sorting, then after sorting 
nothing should be/become selected as well.


>> [...]
>> I'm using the LCL since many years now, and I never noticed whether the 
>> LCL components use Ansi or UTF-8 strings. What's the default, and where 
>> is it (or should be) described?
> 
> I guess with 'Ansi' you mean system encoding. Where does the LCL use
> system encoding?

I'm just asking. I think that I've seen such behaviour somewhere, will 
watch for concrete occurences.

DoDi





More information about the Lazarus mailing list