Ik gebruik nu een StringGrid in een bestaande applicatie. Ik loop hier echter tegen wat beperkingen aan. Helaas bevat de hele Grids unit maar 3 virtual methods, dus het 'even' verbeteren is er niet bij. Gelukkig herinnerde ik mij de NLDStringGrid.
Ik moet zeggen dat ik 'm nog niet heb getest; ik heb de gewoonte om code eerst door te lezen voordat ik een component ga uitproberen, zoook hier. Tot mijn verbazing zag ik dat je toch van TStringGrid hebt afgeleid ondanks de beperkte mogelijkheden om op diens functionaliteiten in te haken.
etc. etc. blahblah. Om een lang verhaal minder geestdodend te maken:
Ik zocht naar een mogelijkheid om de inplace-editor van de stringgrid aan te kunnen passen per kolom. In basis is hier geen mogelijkheid voor in TStringGrid. Er is wel een CreateEditor die wonder-boven-wonder virtual is, maar die wordt niet meer aangeroepen als FInplaceEditor eenmaal <> nil is. Vandaar dat ik de NLDStringGrid ben gaan polsen op deze functionaliteit.
Al bladerend kwam ik de volgende method tegen die volgens mij niet goed gaat:
Code:
procedure TNLDStringColumnItem.SetComboBoxItems(const Value: TStrings);
begin
if Value=nil then
begin
FComboBoxItems.Free;
FComboBoxItems:=nil;
exit;
end;
FComboBoxItems.Assign(Value);
end;
Volgens mij kun je de ComboboxItems op nil zetten, wat tot gevolg heeft dat FComboboxItems wordt vrijgegeven. Wanneer je later een stringlist wilt toekennen aan de combobox-items, dan wordt deze ge-assigned aan de nil gemaakte FComboboxItems. Volgens mij krijg je op dit punt een AV.
De eerlijkheid gebied mij te vermelden dat ik het nog niet heb getest.
Bookmarks