첫번째 폼에 있는 내용입니다.
//넘겨줄려고 하는 값
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 는 활성화 되있구요.
그래서 마우스로 그 위치를 찍어주니까 그때사 보이는 겁니다.
어떻게 하면 바로 전에 있는 편집모드처럼 돌아갈 수 있을까요?
--------------------------------------------------------------------------
부탁드립니다.