Maybe I think too much but can someone look to this LCL code ?
procedure TCustomComboBox.AddHistoryItem(const Item: string; AnObject: TObject;
MaxHistoryCount: integer; SetAsText, CaseSensitive: boolean);
var i: integer;
begin
// insert as first
if (Items.Count=0)
or (CaseSensitive and (AnsiCompareText(Items[0],Item)<>0))
or (not CaseSensitive and (Items[0]<>Item)) then
begin
Items.InsertObject(0,Item,AnObject);
end;
// delete old
for i:=Items.Count-1 downto 1 do begin
if (CaseSensitive and (AnsiCompareText(Items[i],Item)=0))
or (not CaseSensitive and (Items[i]=Item)) then
Items.Delete(i);
end;
// delete overflow items
while Items.Count>MaxHistoryCount do
Items.Delete(Items.Count-1);
// set as text
if SetAsText then
Text:=Item;
end;
Case sensitivity in IT means that "WORD", "Word" and "word" are different strings and case INsensitivity (i.e. not CaseSensitive) should mean that "WORD", "Word" and "word" are same.
Is it bug ?