Q&A

  • 스트링그리드에 콤보박스 동적생성해서 붙이기
StringGrid에 Combobox 동적생성해서 붙이기..인데요..

동적생성해서.. OnDrawCell에 다음과 같이 코딩하였습니다.

실행해서 보면 제대로 Combobox는 붙는데... 클릭이 되질 않습니다.

카우스 커서로 움직이면 내용은 들어가 있는데.. 클릭이 되질 않아 리스트업이 되질 않습니다..

뭐가 잘못된거죠?  ㅠㅠ



procedure TNodeDetailFrm.cbModelChange(Sender: TObject);
var
  i, j: Integer;
  FModel: TModel;
begin
  FModel := FSessionDM.GetModelItem( cbModel.Text );
  for i:=0 to FModel.SlotCount-1 do
  begin
    hgCard.Objects[1, i] := TComboBox.Create( Self );
    with TComboBox( hgCard.Objects[1, i] ) do
    begin
      parent := hgCard;
      Style := csDropDown;
      for j:=0 to FSessionDM.GetCardCount-1 do
        Items.Add( FSessionDM.GetCardByIndex(j).CardName );
    end;
    if ( i < FModel.SlotCount-1 ) then
      hgCard.RowCount := hgCard.RowCount + 1;
  end;  // for
end;


procedure TNodeDetailFrm.hgCardDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  if hgCard.Objects[1, ARow] <> nil then
  begin
    Rect := hgCard.CellRect(1, ARow);
    with TComboBox(hgCard.objects[1 ,ARow]) do
    begin
      Visible := True;
      Top  := Rect.Top;
      Left := Rect.Left;
      Width := Rect.Right - Rect.Left;
      Height := (Rect.Bottom - Rect.Top);
      BringToFront;
      SetFocus;
    end;
  end;  // if
end;

3  COMMENTS
  • Profile
    바보래요 2004.05.18 19:25



    저 혹시 DropDownCount 값은???  

  • Profile
    진돌 2004.05.18 19:47
    DropDownCount 값은 셋팅 안했는데요..
    셋팅해보았지만... 리스트업이 안됩니다..
    콤보박스 클릭하면 리스트가 안나와요.. ㅠ.ㅠ

    추가) 아~ Parent를 StringGrid로 안하고 Form으로 하면 잘 됩니다.. ^^
         Parent를 StringGrid로 하믄 클릭 안됩니다.. ㅡ,.ㅡ;;

  • Profile
    바보래요 2004.05.18 20:18


    고생하셨는디 죄송한데요...

    그런 기능이 있는 그리드를 제가 자료실에 오늘 올렸거든요...

    혹시 도움이 되실지 몰것네요...