귀하는 손님 이십니다
로그인
회원가입
  
  델마당 공식 은행계좌
  하나은행 227-910235-83607
  예금주 이상국(운영진)
프로젝트 게시판
투표게시판
델마당소개
기초부터 활용까지! 델파이 교육 - 데브기어
 광고문의 :
강좌, 팁, 정보 강좌, 팁, 정보 입니다.
글내용 - 강좌, 팁, 정보
 그리드 자음모음 분리 현상 해결책!!
꿈나무
(조용현)
2019-02-20 오후 4:45:42
카테고리: 팁
1412회 조회



등록된 파일이 없습니다.
1. 개발/실행 플랫폼 
  (1) OS : Windows10
  (2) 개발툴 : Delphi7
  (3) 사용 Database : MS SQL

Win10에서 그리드 첫 입력시 자음모음 분리 현상 관련 해결책입니다. 

저도 구글이나 델마당에도 많이 검색 하고 찾지 못한 내용입니다. 

그나마 해결책을 찾아 모두 공유해볼까 합니다.

procedure TfMain.DBGridEh1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key = vk_return) then
  begin
    if (sender as TDBGridEh).DataSource.DataSet.State in [dsBrowse] then
      (sender as TDBGridEh).DataSource.DataSet.FieldByName((sender as TDBGridEh).SelectedField.FieldName).FocusControl;
    end;
end;

그리드 KeyDown 이벤트에서 DataSet의 State가 dsBrowse 일때 해당필드를 FocusControl 합니다.

procedure TfMain.DBGridEh3ColEnter(Sender: TObject);
begin
  inherited;
  if (sender as TDBGridEh).DataSource.DataSet.State in [DsEdit, DsInsert] then
    (sender as TDBGridEh).DataSource.DataSet.Fields[(sender as TDBGridEh).SelectedField.Index].FocusControl;
end;

그리드 ColEnter 이벤트에서 DataSet의 State가 DsEdit, DsInsert 일대 마찬가지로 FocusControl 합니다.

위와같이 적용한다면 Edit, Insert일경우 분리현상을 막을수 있었습니다.

더 좋은 방안이 생기면 또 공유하겠습니다.