급한데 아시면 꼭 글을 남겨 주셨으면 합니다.
두번씩 올려 죄송함다.....
찌송
스트링 그리드에서 geteditortype 이벤트중 콤보박스 를 넣었습니다.
원래는 스트링그리드 특정 셀에서 엔터키가 들어 오면 저장되도록 했었는데
이번에는 스트링그리드 속에 콤보박스 내용을 선택 한후 엔터를 치면 저장이 되어야 하는데..하위 루틴속으로진행이 되지 않군요.
부탁좀 드립니다.
keydown 이벤트에
var
icor : integer;
irow : integer;
begin
case key of
VK_RETURN : begin
case icol of
3 : begin
case irow of
3 : begin
save;
(*save 저장 프로시져*)
end;
end;
end;
end;
end;
end;
좋은 답이있으시면 점갈켜주세요....
글고 착안 사항은 꼭 키보드를 사용 해야 한다는 것입니다.
마우스로 할려면 combochange 이벤트에서 되거든여...
키보드로여 꼭 키보드로여.
정답은 아닌듯한데 참조만 하세여
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if ( gdFocused in State ) then begin
with ComboBox1 do begin
Left := Rect.Left + StringGrid1.Left+3;
Top := Rect.Top + StringGrid1.Top+5;
Width := Rect.Right - Rect.Left;
Visible := True;
ComboBox1.SetFocus;
end;
end;
end;
procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then begin
with StringGrid1 do begin
Cells[Col,Row]:=ComboBox1.Text;
ComboBox1.Visible:=false;
// 저장(Col, Row, Cells[Col,Row]);
end;
end;
end;