Q&A

  • 스트링그리드에 콤보박스를 넣는데...
스트링그리드에 콤보박스를 넣습니다.

콤보박스에서 아이템을 선택하면 스트링그리드의 셀에 값이

들어가도록 만들었습니다. 그런데 안되네요.

소스좀 봐주세요.



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;

0  COMMENTS