학생들의 점수를 입력하는 프로그램 작성중 입니다
dbgrid를 이용해서 작업을 하고 있고요
dbgrid 에는
학번 이름 점수입력난이 나타납니다
점수만 입력하면 되지요
그런데 0 ~100 점을 벋어난 점수를 입력 했을때 error가 발생하고
기 입력된 점수가 0점으로 되게 하고 싶습니다
- 도움을 받아 제가한coding 입니다
procedure Tfrm_hssungjuku.Table2SUNGJUK1Validate(Sender: TField);
begin
if not((Table2sungjuk1.Value >= 0)
and (Table2sungjuk1.Value <= 100)) then
begin
table2sungjuk1.value := 0 ;
Application.MessageBox('0 ~ 100 을 입력하세요', '알림',
MB_OK+MB_DEFBUTTON1+MB_APPLMODAL);
end
end;
error 창은 잘뜨는데
값은 초기화가 않됩니다
초기화를 위한 분분인데
table2sungjuk1.value := 0 ;
이 부분이 문제가 있는것 같아요
그리고 focus도 기 입력된 곳으로 가면 더 좋고요
자세한 coding 부탁드립니다
초기화보다는...제가 DB는 잘 모르지만 그 필드의 MinValue와 MaxValue를 정의해 놓으면 될것 같은데요...
즉, Table2sungjuk1.MaxValue 라는 프로퍼티가 있습니다. 그곳에 100을 넣구 MinValue에는 0을 놓으면 그 이외의 값은 안들어 갑니다.
도움이 되셨기를...
참고로 이것은 속성입니다. Validate이벤트와는 상관이 없습니다. 즉, ObjectInspector에서 그냥 넣어놓고 쓰세요. 아니면 프로그램 생성시 넣어주시던가...(OnCreate)
박천문 wrote:
> 학생들의 점수를 입력하는 프로그램 작성중 입니다
> dbgrid를 이용해서 작업을 하고 있고요
> dbgrid 에는
> 학번 이름 점수입력난이 나타납니다
> 점수만 입력하면 되지요
> 그런데 0 ~100 점을 벋어난 점수를 입력 했을때 error가 발생하고
> 기 입력된 점수가 0점으로 되게 하고 싶습니다
>
> - 도움을 받아 제가한coding 입니다
> procedure Tfrm_hssungjuku.Table2SUNGJUK1Validate(Sender: TField);
> begin
> if not((Table2sungjuk1.Value >= 0)
> and (Table2sungjuk1.Value <= 100)) then
> begin
> table2sungjuk1.value := 0 ;
> Application.MessageBox('0 ~ 100 을 입력하세요', '알림',
> MB_OK+MB_DEFBUTTON1+MB_APPLMODAL);
> end
> end;
>
> error 창은 잘뜨는데
> 값은 초기화가 않됩니다
>
> 초기화를 위한 분분인데
> table2sungjuk1.value := 0 ;
> 이 부분이 문제가 있는것 같아요
> 그리고 focus도 기 입력된 곳으로 가면 더 좋고요
>
> 자세한 coding 부탁드립니다