Q&A

  • DBGRID 편집시 질문입니다.
첫번째 폼에 있는 내용입니다.

//넘겨줄려고 하는 값

Imsi := Query1.FieldByName('KIJONG').Asstring;

Imsi := trim(Imsi); //좌우공백제거

label2.caption := '선택된값 :' + imsi;

printer_Form1.Enabled := false; //폼을 비활성화

//기종선택 서브메뉴 부르기

KijongTrue := P_KiForm1.Slt_Pkijong(Imsi,Imsi_code);

printer_Form1.Enabled := true;

두번째 폼에 있는 내용입니다.

//------------------------------------------------------------------------

function TP_KiForm1.Slt_Pkijong(var Imsi : string ; var Imsi_code : string) : boolean;

//역할:기종을 선택케 해주구 선택했으면 참값을 넘겨주구

//그렇치 않으면 거짓이다.

var

name1 : string;

begin

//필터값 적용하기

name1 := Imsi;

Query1.close; //닫아준다.

Query1.SQL.Clear; //SQL의 내용을 지운다.

Query1.SQL.Add('select CODE, NAME ');

Query1.SQL.Add('from P_KIJONG ');

Query1.SQL.Add('where NAME LIKE :name1');

Query1.ParamByName('name1').AsString := name1 + '%';

Query1.OPEN;

P_KiForm1.Caption := Imsi + '%';

P_KiForm1.showmodal; // 기종 선택 화면 펼침

Imsi_code := DBGrid1.Fields[1].Text;

imsi := DBGrid1.Fields[1].Text;

result := pass;

end;





<문제점>

위에서 보시면 아시겠지만 printer_Form1 폼에 있는 DBGrid(편집모드 상태중) 에서 P_KiForm1에 있는 DBGrid를 펑션문을 이용해서 호출하고 있습니다.

그래서 편집중인 a DBGrid 에서 짧은 단어를 입력해서 다시 b 에 있는 DBGrid를 호출해서 거기에서 최종 단어를 찾아서 다시 a로 되돌아와 찾아온 값을 되돌려주는 프로그램 입니다.

--------------------------------------------------------------------------

그런데 문제1가지는 바로 편집모드로 돌아갔을때 특정 셀에 있는 내용을 전부 선택 시키기 위해서는 어떻게 해야 하나요?

--------------------------------------------------------------------------

DBGrid 이름은 DBGrid1 입니다.

한 예로 edit1.selectall 하면 edit1안에 내용이 전부 선택되는 것처럼요.

전 DBGrid1.selectall 하니까 에러가 나거든요 부탁합니다.

--------------------------------------------------------------------------

문제2는 편집모드에서 다른 하나의 폼을 불러와 작업을 하고 본래 편집중인

DBGrid 로 돌아오니까 커서가 보이질 않습니다.

폼과 그 안에 있는 DBGrid 는 활성화 되있구요.

그래서 마우스로 그 위치를 찍어주니까 그때사 보이는 겁니다.

어떻게 하면 바로 전에 있는 편집모드처럼 돌아갈 수 있을까요?

--------------------------------------------------------------------------

부탁드립니다.





0  COMMENTS