스트링그리드에 콤보박스를 넣습니다.
콤보박스에서 아이템을 선택하면 스트링그리드의 셀에 값이
들어가도록 만들었습니다. 그런데 안되네요.
소스좀 봐주세요.
procedure TForm1.ComboBoxChange(Sender: TObject);
Begin
StringGrid1.Cells[ACols, ARows] := TComboBox(Sender).Text;
StringGrid1.Refresh;
End;
procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if button =mbRight then
Begin
If ((ACols = 0) Or (ACols = 1)) Then Exit;
StringGrid1.Objects[BCols,BRows].Free;
StringGrid1.Objects[ACols,ARows].Free;
PopUpMenu1.Popup(Form1.Left+X,Form1.Top+Y);
Exit;
End Else
Begin
StringGrid1.Objects[BCols,BRows].Free;
If ((ACols = 0) Or (ACols = 1)) Then
Begin
StringGrid1.Objects[ACols, ARows] := TComboBox.Create(StringGrid1);
with TComboBox(StringGrid1.Objects[ACols, ARows]) do
begin
OnChange := ComboBoxChange;
Parent := StringGrid1;
BoundsRect := StringGrid1.CellRect(ACols, ARows);
Width := StringGrid1.ColWidths[ACols];
Height := 2500;
Caption := '이것은 체크박스';
Text := StringGrid1.Cells[ACols,ARows];
Items.Add('Local_1');
Items.Add('Local_2');
Items.Add('Local_3');
Items.Add('Local_4');
Items.Add('Local_5');
Items.Add('Local_6');
Items.Add('Local_7');
Items.Add('Local_8');
Items.Add('Local_9');
Items.Add('Local_10');
Items.Add('Local_11');
Items.Add('Local_12');
Items.Add('Local_13');
Items.Add('Local_12');
Items.Add('Local_13');
Items.Add('Local_14');
end;
End Else
Begin
If StringGrid1.Objects[BCols,BRows] = TComboBox(Sender) Then
StringGrid1.Objects[BCols,BRows].Free;
If StringGrid1.Objects[ACols,ARows] = TComboBox(Sender) Then
StringGrid1.Objects[ACols,ARows].Free;
End;
End;
end;