Q&A

  • 찾아오기....
안녕하십니까

찾아오기를 만들려다 막혀서 자문을 구합니다.

음...

먼저 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;



3  COMMENTS
  • Profile
    최용일 2001.02.28 02:42
    안녕하세요. 최용일입니다.



    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;

    >

  • Profile
    초보 2001.02.28 04:53
    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;



    님 감사합니다.

    제가 할려는건 Fm102의 에디트박스에서 "주"를 치면 Fm.show로 Fmtest를 보이게 합니다.



    그 Fmtest의 그리드에는 디비의 필드중 "주"가 들어있는 데이타가(약10개 로우)

    나타납니다.

    그러나 Fmtest가 보이면서 커서가 같이 이동을 합니다. 이걸 그냥(Fmtest가 show 해도) Fm102의 에디트박스에 붙잡아 두고 싶습니다. Enter 를 누를때까지



    그러면서도 Fm102의 에디드박스에서 단어를 계속치면 ("주식" 이 되면) Fmtest의

    그리드에는 데이타가 줄어들어 나타나게 하고 싶습니다. 그래서 어느시점에 Enter를

    누르면 그때서야 Fmtest로 커서가 이동하게 하고 싶은거죠.



    Fmtest는 어떤경우든,다시 포커스가 Fm102로 이동해도 Fm102 밑으로(속으로)숨지말고 close를 만냐야 숨기고 싶습니다.



    넘 말이 정신없나?

    콕 찍으면 Fm102에서 show로 보여진 Fmtest를 포커스가 없어도,포커스가 Fm102로 이동해도 보여지게 하는 방법 ? 맞나 ?



    님을 포함한 고수님들 보아 주십시요.







  • Profile
    초보 2001.02.28 06:51
    초보 wrote:

    > 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;

    >

    > 님 감사합니다.

    > 제가 할려는건 Fm102의 에디트박스에서 "주"를 치면 Fm.show로 Fmtest를 보이게 합니다.

    >

    > 그 Fmtest의 그리드에는 디비의 필드중 "주"가 들어있는 데이타가(약10개 로우)

    > 나타납니다.

    > 그러나 Fmtest가 보이면서 커서가 같이 이동을 합니다. 이걸 그냥(Fmtest가 show 해도) Fm102의 에디트박스에 붙잡아 두고 싶습니다. Enter 를 누를때까지

    >

    > 그러면서도 Fm102의 에디드박스에서 단어를 계속치면 ("주식" 이 되면) Fmtest의

    > 그리드에는 데이타가 줄어들어 나타나게 하고 싶습니다. 그래서 어느시점에 Enter를

    > 누르면 그때서야 Fmtest로 커서가 이동하게 하고 싶은거죠.

    >

    > Fmtest는 어떤경우든,다시 포커스가 Fm102로 이동해도 Fm102 밑으로(속으로)숨지말고 close를 만냐야 숨기고 싶습니다.

    >

    > 넘 말이 정신없나?

    > 콕 찍으면 Fm102에서 show로 보여진 Fmtest를 포커스가 없어도,포커스가 Fm102로 이동해도 보여지게 하는 방법 ? 맞나 ?

    >

    > 님을 포함한 고수님들 보아 주십시요.



    아래처럼 하니 됩니다.



    procedure TFm102.ac_clcdChange(Sender: TObject);

    var nclcd : string;

    begin

    nclcd := copy(ac_clcd.text,1,1);

    if strtointDef(nclcd, -1) = -1 then begin //숫자가 아니면

    if not Fmtest.Visible then

    Fmtest:= TFmtest.create(self);

    Fmtest.Show; //폼의 인스펙터중 FormStyli을 fsStayOnTop로 설정

    ac_clcd.SetFocus; //그러면 꿋꿋하게 Fm102의 위에 존재합니다.

    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;

    end;

    end;

    • 김종건
    • 2001.02.28 02:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 똘망울
      2001.02.28 03:04
      아래처럼 Exception 처리를 해주면 되져.. 그런다음 마지막 부분에 플래그 체크해서... If 문으로 마무리...
    • TeamX
      2001.02.28 23:47
      어차피 윈2000도 bios 날짜를 기반으로 움직이는거 아닌가요?. 그러다고 가정하면 시스템날짜를 구해오...
    • 김광섭
      2001.03.15 22:48
      김광섭 wrote: > 2차례에 걸쳐서 질문을 올렸지만 결국 제가 하나 찾아냈습니다. > > 답변이 없어서 다시...
    • 나그네
      2001.02.28 06:40
      글쎄용 스토프로시져이름.StoredProcName := '프로시저명'; 스토프로시져이름.prepare; //바로 위라인...
    • 명탁
      2001.02.28 07:01
      with storedproc do begin params.clear; // 이것두... 하고있어염 storedprocname :='프로시저 이름';...
    • 김광섭
      2001.02.28 18:51
      님들 답변에 감사합니다. 올린지 거의 세번만에 첨 답변을 받아 보네요 ^^(1주~2주) (--> spTmp.params....
    • 명탁
      2001.03.01 20:52
      CREATE PROCEDURE IN_PRDT_TK ( PDTNAME VARCHAR(30), CLASSCODE VARCHAR(45), MXCHGE VARCHAR(40...
    • 준초보
    • 2001.02.28 01:59
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.02.28 02:56
      안녕하세요. 최용일입니다. SendMessage로 잘 안돼면 PostMessage를 사용해보세요... 아래와 같이 하...
    • 준초보
      2001.02.28 18:21
      최용일 wrote: > 안녕하세요. 최용일입니다. > > SendMessage로 잘 안돼면 PostMessage를 사용해보세요...
    • 델사랑
    • 2001.02.28 01:56
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이기태
      2001.02.28 09:51
      코딩에 의해 캔바스의 색깔을 바꿔주는 경우가 있긴하지만... 상당히 지저분해 보입니다... 그리드의 ...
    • jung hyun jin
      2001.02.28 06:55
      델사랑 wrote: > 디비그리드에서.. > 특정필드 값을 비교해서 달라지면 ... > 그 레코드가 있는 row의 ...
    • 최용일
      2001.02.28 02:48
      안녕하세요. 최용일입니다. OnDrawDataCell이벤트에서 원하시는 대로 그려주시면 됩니다. 검색해보시...
    • TeamX
      2001.02.28 23:48
      델파이슈퍼페이지에 가셔서 카테고리중에 멀티미디어? 섹션에 프리콤포넌트가 있는데 그중에 뒤져 보면 소...
    • 김광섭
      2001.02.28 01:19
      김춘성 wrote: > > dbgrid 에서 화면에 출력된 내용을 지우고 > 초기화하는 방법이 있을까요... > ...
    • 써니
    • 2001.02.28 01:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • ~~
      2001.02.28 02:46
      이런 질문은 진짜 답변해드리기가 너무 힘들어여... 좀더 구체적인 상황을 적어주세요... 어떤 함수를 ...
    • 이승근
    • 2001.02.28 00:48
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김광섭
      2001.02.28 02:36
      이승근 wrote: > sdate라는 필드가 있고 날짜형입니다... > 수정시 update를 시키고자하는데요... > 어...
    • 초보
    • 2001.02.28 00:32
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.02.28 02:42
      안녕하세요. 최용일입니다. OnChange이벤트는 컨트롤에 변화가 있을때마다 발생합니다. 그게 에디트라면...
    • 초보
      2001.02.28 04:53
      procedure TFm102.ac_clcdKeyPress(Sender: TObject; var Key: Char); var nclcd : string; begin if...
    • 초보
      2001.02.28 06:51
      초보 wrote: > procedure TFm102.ac_clcdKeyPress(Sender: TObject; var Key: Char); > var nclcd : stri...
    • 변인호
      2001.02.28 04:12
      도움이 되실지 모르겠지만... 저도 방금 UDP 소켓을 동적으로 생성했는데.. Receive 이벤트가 발생을 하지...
    • 이상탁
    • 2001.02.28 00:03
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 똘망울
      2001.02.28 03:01
      한마디로 안됩니다. 그게 될려고 하면.. 컴퍼넌트 만드세요. 이상탁 wrote: > 에디터박스에서 글자 ...
    • 이상탁
      2001.02.28 03:38
      답변 감사합니다. 물론 새로운 컴퍼넌트를 만들어야 함은 당연하겠지요. 하지만, 어떤 식으로 구현해야...
    • 까마귀
    • 2001.02.27 23:56
    • 2 COMMENTS
    • /
    • 0 LIKES
    • soriso
      2001.02.28 02:34
      CREATE OR REPLACE PROCEDURE TEST (test1 IN VARCHAR2) --파라미터로 받고(프로시져에서 넘겨 받을 변수...
    • hobakpa
      2001.02.28 02:11
      까마귀 wrote: > 안녕하세요. 까마귀입니다. > > MS-SQL에서요. > 아래처럼 변수를 선언하고 출력을 ...
    • 한원희
      2001.02.28 03:55
      CGI를 통하지 않고 웹 서버의 특정 파일에 문자열을 넣을 수 있는 방법은 없습니다. 웹 서버의 기본 동작...
    • 왕초보
      2001.04.20 08:55
      되는데여..... taeyo.pe.kr인가? 거기 가보세요. empas에서 태오라고 치면 나와요. 거기가서 공개자료실...
    • 델파이
    • 2001.02.27 23:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.02.28 02:35
      안녕하세요. 최용일입니다. 흠~~ API함수로 wsprintf, wvsprintf가 있구요. 걍 쉽게 Format함수를 사용...
    • 김춘성
    • 2001.02.27 23:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 까마귀
      2001.02.28 00:08
      김춘성 wrote: > > DBLookupComboBox1에서 하나를 선택하면 알림창으로 > 그 숨은 값을 보여주려면 어...
    • 배준영
    • 2001.02.27 23:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 감초
      2001.03.05 01:19
      try 문안에서 쿼리를 만들어 한번 open해보세요. 열리면 있는 거구 에라가 나면 없는 거구요. 배준영...
    • 델초보
    • 2001.02.27 23:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이성훈
      2001.02.27 23:18
      델초보 wrote: > 2000년 10월에 개정된 우편번호DB구합니다. > 현재 회사에 가지고 있는 우편번호 자료가...
    • 이성훈
      2001.02.27 23:23
      빨리요~~ wrote: > 어떤 특정 데이터의 합계를 쿼리로 구해서 레이블의 caption값으로 주려고 > sum_amou...
    • BLUE
      2001.02.27 23:20
      빨리요~~ wrote: > 어떤 특정 데이터의 합계를 쿼리로 구해서 레이블의 caption값으로 주려고 > sum_amou...
    • 빨리요~~
      2001.02.28 00:27
      감사합니다~ 무식이 탄로 났으나~ 덕분에~ 한가지 알았네요~ 탄로 난 김에 물어 볼께 또 있는데요~ ...
    • 이광형
      2001.02.28 01:24
      안녕하세요 이렇게 해 보세요... sum_amount.Caption := Formatfloat('##,###,##0.00',FieldByName('sum(...
    • 빨리요~~
      2001.02.28 01:37
      이광형 wrote: > 안녕하세요 > 이렇게 해 보세요... > sum_amount.Caption := Formatfloat('##,###,##0....
    • ㅠㅠ
    • 2001.02.27 21:24
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이기태
      2001.02.28 09:45
      조금 불편하시긴 하겠지만요... 두개의 컬럼이 연동하는 경우에는 문제가 많이 있습니다... 첫번째 ...
    • ㅠㅠ
      2001.03.02 19:39
      ㅠㅠ wrote: 죄송하지만.. 쫌더 자세히 알려주시면... 안될까여? 이기태 wrote: > > 조금 불편...
    • 김광섭
      2001.02.27 22:34
      ㅠㅠ wrote: > 저 있쟈나요... 어떤거냠여, 디비 그리드가 있는데... 첫번째 컬럼에 > 충청북도, 서울시...
    • rain
      2001.02.28 07:08