hsr////////////////////////////////////////////////////////////
1. 스트링그리드에 ComboBox1를 하나 올려 놓고
Visible을 false합니다.
2.스트링 그리드 OnDrawCell이벤트에 코딩합니다
procedure TFrmMain.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
if(gdfocused in state) then begin
with ComboBox1 do begin
if (StringGrid1.Col = 1) then begin //스트링그리드 1컬럼만 적용
Top := Rect.Top + StringGrid1.Top;
Left := Rect.Left + StringGrid1.Left;
Width := Rect.Right - Rect.Left;
//원상태에 맞게 작업콤보박스셋팅
ItemIndex := Items.IndexOf(StringGrid1.Cells[StringGrid1.Col,
StringGrid1.Row]);
visible := true;
end
else
Visible := false;
end;
end;
end;
hsr////////////////////////////////////////////////////////////
1. 스트링그리드에 ComboBox1를 하나 올려 놓고
Visible을 false합니다.
2.스트링 그리드 OnDrawCell이벤트에 코딩합니다
procedure TFrmMain.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
if(gdfocused in state) then begin
with ComboBox1 do begin
if (StringGrid1.Col = 1) then begin //스트링그리드 1컬럼만 적용
Top := Rect.Top + StringGrid1.Top;
Left := Rect.Left + StringGrid1.Left;
Width := Rect.Right - Rect.Left;
//원상태에 맞게 작업콤보박스셋팅
ItemIndex := Items.IndexOf(StringGrid1.Cells[StringGrid1.Col,
StringGrid1.Row]);
visible := true;
end
else
Visible := false;
end;
end;
end;
3.ComboBox1의 OnChange이벤트에 코딩합니다.
procedure TFrmMain.ComboBox1Change(Sender: TObject);
var
Set_state, Temp_STR : string;
begin
Set_state := ComboBox1.Items[ComboBox1.ItemIndex];
StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row] := Set_state;
ComboBox1.Visible := false;
end;