[Lazarus] RE : RE : RE : RE : RE : @DBLookupControls users: call for test

Marcos Douglas md at delfire.net
Thu Dec 15 13:27:41 CET 2011


On Wed, Dec 14, 2011 at 8:42 PM, Luiz Americo Pereira Camara
<luizmed at oi.com.br> wrote:
>
> On 14/12/2011 09:17, michael at freepascal.org wrote:
>>
>>
>>
>> On Wed, 14 Dec 2011, Ludo Brands wrote:
>>
>>>>
>>>> I've got your point.
>>>>
>>>> Mine is that the control should keep less intrusive as it was
>>>> designed
>>>> earlier (the original author explicitly avoided changing
>>>> listsource cursor).
>>>>
>>>
>>> Less intrusive became occulted. Not only are we missing an important (for me
>>> at least) Delphi feature but the current implementation makes it virtually
>>> impossible to emulate the Delphi behavior since everything related to the
>>> lookup is private:
>>> A convoluted workaround for DBLookupComboBox was to create a
>>> DBLookupComboBox.OnChange, retrieve DBLookupComboBox.ItemIndex and move its
>>> listsource to that position. Unfortunately, recent changes have made this
>>> even more difficult since DBLookupComboBox2.ListSource returns nil if
>>> Datafield is a lookup field. Setting ListSource when Datafield is ftLookup
>>> was superfluous but possible and useful. Beats me why this was removed.
>>> Progress? Now I have to get the field information of DataField to get to the
>>> ListSource :
>>> DBLookupComboBox.DataSource.DataSet.FieldByName(DBLookupComboBox.DataField).
>>> LookupDataSet.RecNo:=DBLookupComboBox.ItemIndex+1 :(  I'll create a seperate
>>> bugreport for this regression. Even if ListSource isn't settable for a
>>> ftLookup Datafield, it shouldn't return nil.
>>>
>>> DBGrid is even worse. For the picklist I haven't found anything (event or
>>> property) to get to its index or value.
>>>
>>> The remedy for being less intrusive is worse than the disease.
>>
>>
>> I am totally in agreement with Ludo on this one.
>>
>> I think the users should at least be offered the opportunity to change the
>> behaviour. I have always counted on the Delphi-compatible behaviour: selecting an element in a lookup positions the cursor in the lookup dataset.
>>
>> So a property 'SyncLookupCursor' or so should maybe be introduced. The
>> default can be 'False', but I for one would need the 'True'.
>>
>
> OK. I can do that
>
> Please open a bug report with a sample project with the expected behavior pointing that is a delphi compatibility
>
> Since the LookupSource is named ListSource
>
> I think of ScrollList or ScrollListSource or ScrollListCursor

I said before ScrollDataSet, but ScrollListSource is a better name.

Marcos Douglas




More information about the Lazarus mailing list