Q&A

  • DB 프로그램 짜는데요...
안녕들 하시죠. 최고의 델초가 또 글을 올립니다.

제 질문은 2가지 인데요..



1) MDI폼에서 child폼이 뜰때 아예 Max크기로 뜨게 하려 합니다.

그래서 폼의 속성에서 잡아주었습니다. 폼을 생성할때 최대화 크기로 뜨긴합니다.

헌데, 크기가 작은폼에서 부터 쭉~ 펴지는 모습이 넘 보기않좋은데요.

과정이 다 눈에 보일정도니까 더 안되겠죠, 바로 최대화 된 화면으로 뜰 수는 없나요?

디자인은 물론 사이즈를 최대화 크기에 맞춰 작업했습니다.



2) DBEdit, DBCombo, DBGrid등을 사용하여 작업을 했습니다.

DB는 SQL7.0을쓰고 있고요. Remote에서 작업을 하고 있죠. Table은 모두 CachedUpdates를 사용하고 있습니다.

처음 폼이 뜸과 동시에 Table을 Open합니다. 그럼, 상태가 dsBrowse상태죠.

헌데, 컴포넌트 중에 DBCombo를 클릭하면 바로 Table상태가 편집모드 상태로 변합니다.

모드 변경은 오로지 각각에 따른 버튼클릭에 의해 처리하기를 원합니다.

해결 방안을 제시해 주세요...



저도 얼른 도움 받은만큼 돕구싶은데요...호호 즐토 되세요.

2  COMMENTS
  • Profile
    parkisu 2000.07.30 08:21
    푸하하 wrote:

    > 안녕들 하시죠. 최고의 델초가 또 글을 올립니다.

    > 제 질문은 2가지 인데요..

    >

    > 1) MDI폼에서 child폼이 뜰때 아예 Max크기로 뜨게 하려 합니다.

    > 그래서 폼의 속성에서 잡아주었습니다. 폼을 생성할때 최대화 크기로 뜨긴합니다.

    > 헌데, 크기가 작은폼에서 부터 쭉~ 펴지는 모습이 넘 보기않좋은데요.

    > 과정이 다 눈에 보일정도니까 더 안되겠죠, 바로 최대화 된 화면으로 뜰 수는 없나요?

    > 디자인은 물론 사이즈를 최대화 크기에 맞춰 작업했습니다.

    >

    > 2) DBEdit, DBCombo, DBGrid등을 사용하여 작업을 했습니다.

    > DB는 SQL7.0을쓰고 있고요. Remote에서 작업을 하고 있죠. Table은 모두 CachedUpdates를 사용하고 있습니다.

    > 처음 폼이 뜸과 동시에 Table을 Open합니다. 그럼, 상태가 dsBrowse상태죠.

    > 헌데, 컴포넌트 중에 DBCombo를 클릭하면 바로 Table상태가 편집모드 상태로 변합니다.

    > 모드 변경은 오로지 각각에 따른 버튼클릭에 의해 처리하기를 원합니다.

    > 해결 방안을 제시해 주세요...

    >

    > 저도 얼른 도움 받은만큼 돕구싶은데요...호호 즐토 되세요.



    안녕하세요.

    첫번째 답은 한델 팁모아나 델파이코리아 팁란, 김영대님 홈페이지의 팁란 중 한군에데 있을 겁니다.



    두번째는 Db Control들의 Keypress이벤트에다 추가나 수정버튼이 눌렸을 때만 키입력을 허용하면

    어떨까요?



    procedure TForm1.DBCombobox1KeyPress(Sender:TObject; var Key:Char);

    begin

    //편집버튼이 안눌렸으면 키값을 죽인다.

    if not EditButton.Down then

    key:= #0;

    end;

  • Profile
    임형호 2000.07.30 08:18
    푸하하 wrote:

    > 안녕들 하시죠. 최고의 델초가 또 글을 올립니다.

    > 제 질문은 2가지 인데요..

    >

    > 1) MDI폼에서 child폼이 뜰때 아예 Max크기로 뜨게 하려 합니다.

    > 그래서 폼의 속성에서 잡아주었습니다. 폼을 생성할때 최대화 크기로 뜨긴합니다.

    > 헌데, 크기가 작은폼에서 부터 쭉~ 펴지는 모습이 넘 보기않좋은데요.

    > 과정이 다 눈에 보일정도니까 더 안되겠죠, 바로 최대화 된 화면으로 뜰 수는 없나요?

    > 디자인은 물론 사이즈를 최대화 크기에 맞춰 작업했습니다.

    >

    > 2) DBEdit, DBCombo, DBGrid등을 사용하여 작업을 했습니다.

    > DB는 SQL7.0을쓰고 있고요. Remote에서 작업을 하고 있죠. Table은 모두 CachedUpdates를 사용하고 있습니다.

    > 처음 폼이 뜸과 동시에 Table을 Open합니다. 그럼, 상태가 dsBrowse상태죠.

    > 헌데, 컴포넌트 중에 DBCombo를 클릭하면 바로 Table상태가 편집모드 상태로 변합니다.

    > 모드 변경은 오로지 각각에 따른 버튼클릭에 의해 처리하기를 원합니다.

    > 해결 방안을 제시해 주세요...

    >

    > 저도 얼른 도움 받은만큼 돕구싶은데요...호호 즐토 되세요.





    2번 문제에 대한 답변입니다.

    우선 DBCombobox를 dsBrowse상태에서는 enabled속성맞나? 여기가 작업실이 아니라서 갑자기 기억이 안나네요. 암튼... 단지 보여지게만 하는 속성이 있거든요. 값이 변동이 안되게요. 이것은 무릇 DBCombobox만이 아니고 DBEdit인 경우에도 마찬가지일겁니다.

    저같은 경우에는 datasource 컴포넌트의 statechange라는 이벤트를 이용했습니다.

    datasource의 state에는 dsbrowse, dsinsert, dsedit 가 있으며(순서대로 조회, 입력, 수정상태를 의미함) 각각 현재 연결된 db가 어떤 상태인가를 나타내죠.



    if datasource1.state=dsbrowse then

    dbcombobox1.enabled:=false;

    else

    dbcombobox1.enabled:=true;



    //여기 겜방이라서 확실하지 않습니다. 죄송..

    //위의 문장은 현재 연결된 db가 조회상태이면 dbcombobox를 선택해서 다른값을 입력못하게 막을수 있을겁니다.