안녕하십니까
찾아오기를 만들려다 막혀서 자문을 구합니다.
음...
먼저 102폼의 에디트박스에서 어떤 단어를 치면 클라이언트디비의 필드내용중
같은 값이 들어있는 것들의 리스트를 새로이 폼을 열고 그폼에 위치한 그리드에
보여줄려고 하는데요
그리드에 나타나기는 하는데 포커스가 없으면 새로운 폼이 102폼 아래로 숨어버립니다
내가 원하는때에 새로운폼에 포커스가 이동 했으면 하는데 말을 안듣네요....쩝
그러니까 102폼의 에디트에서 주식회사 를 치면 새로운폼의 그리드에 디비중 주식회사가 들어 있 는 것들은 모두 나타나게 ... 근데 주 라고 한자만 치면 새로운 폼이나타나고 포커스는 새로운폼에 위치 한거든요. 이녀석(포커스)은 기존폼에 나의 명령이
떨어지기 까지는 그냥 있어야 하는데말이죠... 마우스로 기존폼의 에디트박스를 클릭
하면 또 새로운 폼이 숨어버리고... 이넘도 숨으면 안되는데....
아래는 소스임다. 보시고 한수 지도 바랍니다.
procedure TFm102.ac_clcdChange(Sender: TObject);
var nclcd : string;
begin
nclcd := copy(ac_clcd.text,1,1);
if strtointDef(nclcd, -1) = -1 then begin //숫자가 아니면
Fmtest:= TFmtest.create(self);
ac_clcd.SetFocus; //102폼의 에디트박스
with Fmtest.SQlsply do begin
close;
sql.clear;
sql.add('select ad_keys, ad_clnt from splydb');
sql.add('where ad_clnt like :p_clnt');
parambyname('p_clnt').asstring := '%' + ac_clcd.text + '%';
open;
end;
Fmtest.Show;
end;
end;
OnChange이벤트는 컨트롤에 변화가 있을때마다 발생합니다. 그게 에디트라면 글자를 입
력할때마다, 포커스가 들어올때마다, 안의 내용이 선택될때마다, ... 암튼 에디트에 변
화가 오면 발생하죠... 그러니까 이벤트 선택이 잘못되었네요...
OnKeyPress같은 이벤트에서 엔터를 쳤을때 실행하거나 버튼을 클릭했을때 실행하도록
바꿔주셔야 겠네요...
procedure TFm102.ac_clcdKeyPress(Sender: TObject; var Key: Char);
var nclcd : string;
begin
if (Key = Char(vk_Return)) then
begin
nclcd := copy(ac_clcd.text,1,1);
if strtointDef(nclcd, -1) = -1 then begin //숫자가 아니면
Fmtest:= TFmtest.create(self);
ac_clcd.SetFocus; //102폼의 에디트박스
with Fmtest.SQlsply do begin
close;
sql.clear;
sql.add('select ad_keys, ad_clnt from splydb');
sql.add('where ad_clnt like :p_clnt');
parambyname('p_clnt').asstring := '%' + ac_clcd.text + '%';
open;
end;
Fmtest.Show;
end;
end;
^^ 항상 즐코하세요...
초보 wrote:
> 안녕하십니까
> 찾아오기를 만들려다 막혀서 자문을 구합니다.
> 음...
> 먼저 102폼의 에디트박스에서 어떤 단어를 치면 클라이언트디비의 필드내용중
> 같은 값이 들어있는 것들의 리스트를 새로이 폼을 열고 그폼에 위치한 그리드에
> 보여줄려고 하는데요
>
> 그리드에 나타나기는 하는데 포커스가 없으면 새로운 폼이 102폼 아래로 숨어버립니다
> 내가 원하는때에 새로운폼에 포커스가 이동 했으면 하는데 말을 안듣네요....쩝
>
> 그러니까 102폼의 에디트에서 주식회사 를 치면 새로운폼의 그리드에 디비중 주식회사가 들어 있 는 것들은 모두 나타나게 ... 근데 주 라고 한자만 치면 새로운 폼이나타나고 포커스는 새로운폼에 위치 한거든요. 이녀석(포커스)은 기존폼에 나의 명령이
> 떨어지기 까지는 그냥 있어야 하는데말이죠... 마우스로 기존폼의 에디트박스를 클릭
> 하면 또 새로운 폼이 숨어버리고... 이넘도 숨으면 안되는데....
>
> 아래는 소스임다. 보시고 한수 지도 바랍니다.
>
>
> procedure TFm102.ac_clcdChange(Sender: TObject);
> var nclcd : string;
> begin
> nclcd := copy(ac_clcd.text,1,1);
> if strtointDef(nclcd, -1) = -1 then begin //숫자가 아니면
> Fmtest:= TFmtest.create(self);
> ac_clcd.SetFocus; //102폼의 에디트박스
> with Fmtest.SQlsply do begin
> close;
> sql.clear;
> sql.add('select ad_keys, ad_clnt from splydb');
> sql.add('where ad_clnt like :p_clnt');
> parambyname('p_clnt').asstring := '%' + ac_clcd.text + '%';
> open;
> end;
> Fmtest.Show;
> end;
> end;
>