자답....
인터넷옵션에서 쿠키삭제하고 돌리니 에러가 사라졌네요
또 호출부분을
Edit1Change가 아니라 Form1Create에 선언해주니 잘됩니다...
그런데 영문만 자동완성기능이 먹히고 한글은 안되는데 원래 그런가요?
한글이 안되면 별 필요가 없는데;;
델펀맨 님이 쓰신 글 :
: 답변 감사드립니다.
:
: 우선 알려주신대로 폼선언 바깥쪽으로 위치를 옮기니 컴파일은 잘 됩니다만
:
: edit창에서 자동완성기능을 테스트하기위해 타이핑을하면 shell32.dll 에러가 나네요
: procedure TForm1.Edit1Change(Sender: TObject);
: var
: Options: dWord;
: begin
: Options := SHACF_FILESYSTEM or SHACF_URLHISTORY or SHACF_URLMRU or
: SHACF_AUTOSUGGEST_FORCE_ON or SHACF_AUTOAPPEND_FORCE_ON;
: SHAutoComplete(Edit1.Handle, Options);
: end;
: api호출 부분은 이렇게 해줬습니다.
:
:
: 실행-cmd 창에서 regsvr32 shell32.dll 해준뒤에도 계속 에러가나는데 재설치를 해줘야 하나요?
:
:
: kylix 님이 쓰신 글 :
: : function SHAutoComplete(hwndEdit: HWnd; dwFlags: DWORD): HResult; stdcall; external 'Shlwapi.dll';
: :
: : 위 줄은 클래스(폼)의 메소드가 아니라 일반 함수로 작성하셔야 합니다.
: :
: : 폼선언 바깥쪽으로 위치를 옮기세요.
: :
: : TForm1 = class(...)
: : ...
: : end;
: :
: : function SHAutoComplete(hwndEdit: HWnd; dwFlags: DWORD): HResult; stdcall; external 'Shlwapi.dll';
: :
: : 델펀맨 님이 쓰신 글 :
: : :
http://skyrack.tistory.com/1 여기서 본것을 토대로
: : :
: : : ShAutoComplete 기능을 이용해 자동완성을 구현하려 했는데요
: : :
: : : function SHAutoComplete(hwndEdit: HWnd; dwFlags: DWORD): HResult; stdcall; external 'Shlwapi.dll';
: : :
: : : 이 부분에서 에러가나네요
: : :
: : : [Error] AScombo.pas(326): Field definition not allowed after methods or properties
: : :
: : :
: : : 그냥 procedure 선언하는 부분에 같이
: : : .
: : : .
: : : procedure Button1Click(Sender: TObject);
: : : procedure Button2Click(Sender: TObject);
: : : function SHAutoComplete(hwndEdit: HWnd; dwFlags: DWORD): HResult; stdcall; external 'Shlwapi.dll';
: : : procedure Edit1Change(Sender: TObject);
: : : .
: : : .
: : : 이런식으로 선언해줬는데
: : :
: : : 위치가 잘못된건가요? 아니면 Shlwapi.dll을 따로 다운받아야 하는건가요
: : :
: : :
: : :
: : :
: : :
: : :
: : :