Delphi:将组合框下拉列表添加到 TADVStringGrid
Delphi: Adding Combobox Dropdown to TADVStringGrid
我有一个包含 TADVStringGrid 的表单。我正在尝试将组合框添加到特定列 (2) 中的某些行;但是,我无法在下拉列表中显示数据。我添加了 HasComboBox 事件,我设置了 DirectComboDrop,但它仍然没有在下拉列表中显示任何数据。他们只是空的。我检查了我添加到下拉列表中的对象,它们有数据。我在这里错过了什么?
procedure UserForm.DisplayGrid(Sender: TObject);
var
J : Integer;
begin
... additional logic
...
if OutputList.Count > 2 then
begin
with UserGrid.Combobox do
begin
for J := 0 to OutputList.Count - 1 do
BEGIN
if not(OutputList[J] = '') then
begin
dValue := DropDownValue.Create;
dValue.ID := J + 1;
dvalue.Name := OutputList[J];
dvalue.TestValue := OutputList[J] + 'testvalue'; // where value will be a list to choose from
ListOfTest.Add(dValue); // this is a glabal variable where I for later reference
ItemIndex := dValue.ID;
end;
END;
end;
end;
//event
procedure UserForm.UserGridHasComboBox(Sender: TObject; ACol, ARow: Integer;
var HasComboBox: Boolean);
begin
HasComboBox := True;
end;
需要添加一个名为 EditorProp 的事件句柄。需要为特定列添加的数据必须在调用 EditorProp 事件时添加。下面的代码片段被移到了 editorprop 事件中,并且从那以后它运行良好。
for J := 0 to OutputList.Count - 1 do
BEGIN
if not(OutputList[J] = '') then
begin
dValue := DropDownValue.Create;
dValue.ID := J + 1;
dvalue.Name := OutputList[J];
dvalue.TestValue := OutputList[J] + 'testvalue'; // where value will be a list to choose from
ListOfTest.Add(dValue); // this is a glabal variable where I for later reference
ItemIndex := dValue.ID;
end;
我有一个包含 TADVStringGrid 的表单。我正在尝试将组合框添加到特定列 (2) 中的某些行;但是,我无法在下拉列表中显示数据。我添加了 HasComboBox 事件,我设置了 DirectComboDrop,但它仍然没有在下拉列表中显示任何数据。他们只是空的。我检查了我添加到下拉列表中的对象,它们有数据。我在这里错过了什么?
procedure UserForm.DisplayGrid(Sender: TObject);
var
J : Integer;
begin
... additional logic
...
if OutputList.Count > 2 then
begin
with UserGrid.Combobox do
begin
for J := 0 to OutputList.Count - 1 do
BEGIN
if not(OutputList[J] = '') then
begin
dValue := DropDownValue.Create;
dValue.ID := J + 1;
dvalue.Name := OutputList[J];
dvalue.TestValue := OutputList[J] + 'testvalue'; // where value will be a list to choose from
ListOfTest.Add(dValue); // this is a glabal variable where I for later reference
ItemIndex := dValue.ID;
end;
END;
end;
end;
//event
procedure UserForm.UserGridHasComboBox(Sender: TObject; ACol, ARow: Integer;
var HasComboBox: Boolean);
begin
HasComboBox := True;
end;
需要添加一个名为 EditorProp 的事件句柄。需要为特定列添加的数据必须在调用 EditorProp 事件时添加。下面的代码片段被移到了 editorprop 事件中,并且从那以后它运行良好。
for J := 0 to OutputList.Count - 1 do
BEGIN
if not(OutputList[J] = '') then
begin
dValue := DropDownValue.Create;
dValue.ID := J + 1;
dvalue.Name := OutputList[J];
dvalue.TestValue := OutputList[J] + 'testvalue'; // where value will be a list to choose from
ListOfTest.Add(dValue); // this is a glabal variable where I for later reference
ItemIndex := dValue.ID;
end;