Q&A

  • 스트링그리드에서 COMBOBOX나타낼때 문제입니다. 도와주세요 !
스트링그리드의 특정 COL을 클릭시에 콤보박스를 생성하도록 하는 코딩입니다... 그러나 2가지 문제가 발생합니다 ... 도와주세요 여러분 !

1. 원하는 COL에서 클릭시에 2번째 로우에 콤보박스가 하나더 생성됩니다. 저는 3ROW, 6COL 에서 클릭을
    하면 아래의 코딩에 따라 콤보박스가 생생되어야 하는데 2ROW,6COL에 하나가 더 생성됩니다. 결국은
    2개가 생성된다는 이야기죠.
2. csDropDown 을 위해서 parent := Pj_value_Form 할경우 원하는 row,col에 콤보박스가 생성되는 것
    이 아니라 따른곳에서 생성됩니다. cells[3.6]에서 클릭을 하면 콤보는 그 셀에 생성되는 것이 아니라 좌측  
    윗 부분에 생성됩니다.  parent := Pj_value_Form  할 경우
      Left   := Pj_value_Form .Left + Rect.Left+1;
      Top    := Pj_value_Form .Top + Rect.Top+1;
    로 수정 해서 그 셀의 위치를 찾아서 생성하게 끔 코딩했는데 뭐가 문제인지 모르겠습니다.
     parent := AdvSGrd_init로 하고 cells[3.6]에서 클릭을 하면 콤보는 cells[3.6]위치에 잘 나타납니다

왜 그런지 정말 모르겠습니다. 코딩을 검토 후 조언부탁드립니다.

    




if ACol = 6 then
  begin
    FlatComboBox1 := TFlatComboBox.Create( Self );
    Rect := AdvSGrd_init.CellRect(ACol,ARow);
    with FlatComboBox1 do begin
//      parent := AdvSGrd_init;
      parent := Pj_value_Form;
      Style := csDropDown;
      visible := True;
      Left   := Pj_value_Form.Left + Rect.Left+1;
      Top    := Pj_value_Form.Top + Rect.Top+1;
      Width  := Rect.Right - Rect.Left;
      Height := (Rect.Bottom - Rect.Top);
      Style := csDropDown;
      BringToFront;
      Items.Add('a');
      Items.Add('b');
      Items.Add('c');
      DropDownCount := 3;
      Text := AdvSGrd_init.Cells[ACol,ARow];


    end;

  end
else
  FlatComboBox1.Visible := False;
0  COMMENTS