스트링그리드에 콤보박스넣기를 해보려구 하는데 초보라서 영 되질않네요
여기에 나온 예제를 따라해 보기도 하였지만 영되질 않네요 추가적인 콤포넌트 사용없이 델파이에서 기본적으로 제공하는 컴포넌트만을 사용하여 만들수 있는 방법있으면 누가 좀 알려주세요
아님 간단한 예제 하나만 올려주세요
지발.....
편법으로 밖에 쓸수 없습니다. 일단 스트링그리드 올려놓고, 콤보박스 하나를 폼위에 올려 놓고요 마우스가 해당 셀을 클릭했을때 올려놓은 콤보박스를 그 위치로 옮기는 방법으로 가능합니다. 소스는...
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
var
Rect : TRect;
begin
if ACol = 1 then // 1번째열로 포커스가 이동됐을때 Combobox 보여주기
begin
Rect := StringGrid1.CellRect(ACol,ARow); // 현재 Cell의 좌표를 Rect로 저장
with ComboBox1 do
begin
visible := True;
Left := StringGrid1.Left + Rect.Left+2;
Top := StringGrid1.Top + Rect.Top+3;
Width := Rect.Right - Rect.Left;
Height := (Rect.Bottom - Rect.Top);
Text := stringGrid1.Cells[ACol,ARow];
BringToFront; // ComboBox1을 최상위로 옮기기 <> SendToBack
SetFocus;
end;
end;
end;
편법으로 밖에 쓸수 없습니다. 일단 스트링그리드 올려놓고, 콤보박스 하나를 폼위에 올려 놓고요 마우스가 해당 셀을 클릭했을때 올려놓은 콤보박스를 그 위치로 옮기는 방법으로 가능합니다. 소스는...
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
var
Rect : TRect;
begin
if ACol = 1 then // 1번째열로 포커스가 이동됐을때 Combobox 보여주기
begin
Rect := StringGrid1.CellRect(ACol,ARow); // 현재 Cell의 좌표를 Rect로 저장
with ComboBox1 do
begin
visible := True;
Left := StringGrid1.Left + Rect.Left+2;
Top := StringGrid1.Top + Rect.Top+3;
Width := Rect.Right - Rect.Left;
Height := (Rect.Bottom - Rect.Top);
Text := stringGrid1.Cells[ACol,ARow];
BringToFront; // ComboBox1을 최상위로 옮기기 <> SendToBack
SetFocus;
end;
end;
end;
그럼 도움이 되셨길...