Q&A

  • 도와주세요 제발!!
지금 하드웨어와 인터페이스 부분을 델6으로 만들고 있습니다.
근데 이 하드웨어는 인터페이스 소스나 샘플을 VC,VB 용으로 제공한답니다. 이럴때 항상 델파이의 소외감을 느끼지요.
암튼 그래서 이럴땐 어떻게 해야하나요? DLL을 사용하면 된다고도 하는데 그럼 VC 로 DLL을 만들어 델파이에서 사용해야 하나요? 근데 제가 VC를 잘 몰라서...
혹시 이럴경우 어떻게 해야 하나요?
제 생각인데 이러면 되는지요

1. C,C++ 용으로 된 헤더파일 (xx.h)을 델파이용 (xx.pas)로 바꾼다 - 뒤져보니깐 이렇게 바꿔주는 프로그램이 있더라구요.  
2. 그리고 델 소스에서 Unit에 이 xxx.pas를 추가하고 그냥 거기에 있는 함수를 사용한다.

근데 이게 가능한가요?
하드웨어 제조사에서 델파이용 인터페이스를 고려안해도 이렇게 하면 되는건지..... 그리고 제가 설명한 방법이 맞는건지 누구 자세히 설명, 방법 좀 간곡히 부탁드립니다.
2  COMMENTS
  • Profile
    하얀까마귀 2004.04.27 19:25
    안녕하세요 하얀까마귀 입니다.
    음...
    하드웨어 인터페이스라면 보통 씨나 비베로 많이들 작업을 합니다.
    물론 간혹 델파이로 작업을 해서 배포하는 경우도 있지만.. 별 상관은 없죠

    보통은 하드웨어 인터페이스 부분을 DLL로 만들어서 배포를 하기 때문에 (드라이버요...) 이 DLL을 가져다 쓰면 되는것이죠.. 별로 어렵지 않습니다.

    이 DLL을 가져다 쓰는걸 씨로 되어있든 비베로 되어있든 어차피 해당 함수를 쓰는것이기 때문에 별문제가 없죠. 소스를 한번 보시면 그걸 델파이로 바꾸는건 어렵지 않으실 껍니다.

    두번째 경우는 이런 DLL이 없는 경우입니다. 음. 제경험상으로는 보통 콤포트를 이용해서 하는 통신인 경우에는 굳이 이러한 인터페이스를 만들어서 배포를 하진 않죠. 그냥 콤포트를 직접 제어 하면 되니까요.

    이런 경우에도 샘플을 비베나 씨로 만들어서 보여주는 경우가 많은데. 아니 대부분이 그렇죠. ㅎㅎ  
    이런 경우에는 그냥 일반적인 com port 를 제어할수 잇는 콤포넌트를 하나 올려놓고 제어하시면 됩니다. 물론 인터페이스는 해당 소스에 있거나 메뉴얼을 제공할껍니다. 그걸 보고 작업을 하시면 되구요..

    어떤 경우의 것인지 몰라 자세히 설명을 드리긴 그렇고. 다만 말씀하신
    씨의 헤더파일과  소스파일을 그런 프로그램을 이용해서 델파이로 바꾸는 작업은 그리 만만치 않습니다. 소스의 양이 얼마안된다면 모를까 그런 프로그램들이 완벽히 변환이 가능한것도 아니구요.

    그냥 소스분석해서 작업하시는게 제 경험으로는 훨신더 빠릅니다.
    소스의 양이 적을때도 마찬가지죠 소스의 양이 적으면 그냥 코딩 하는게 훨빠르죠 분석이고 뭐고 할것도 없으니까. ㅎㅎ

    만약 해당 소스를 변환해줄려고 한다면 님이 말씀하신 방법이 맞습니다.

    헤더파일을 다른 pas 로 작업을 하시든 아니면 하나의 pas로 하시든 상관업습니다.

    어떤식으로 하셔도 되구요... 제 경험으로는 씨의 매크로들 때문에 작업이 많이 어렵습니다. 델파이에서는 지원안하니까요.
    델파이 처음쓸때는 이런 매크로가 지원이 안되어서 많이 불편하게 느꼈습니다만.. 몇년이 지나니까 이런 매크로가 없는게 가독성이라던지 차후에 변환작업에서 훨신 유리하더군요.. ㅎㅎ

    그럼..


  • Profile
    최인권 2004.04.27 20:25
    친절한 답변 정말 감사드립니다.
    제가 지금 제어해야 하는 것은 Bill Acceptor 입니다.
    지폐를 넣고 넣은 금액만큼 바로 화면에 출력하여 금액에 따라 제 어플리케이션을 핸들하는건데...
    근데 좀 다시한번 설명을 부탁드리겠습니다.
    1. DLL을 가져다가 그냥 쓴다..델파이로 바꾼다는것이 무슨 뜻인가요?
      xx.c, xx.h 로 컴파일된 DLL을 델파이로 바꾼다는 것은 xx.h 파일을 xx.pas 로 바꿔서 결국 xx.c 에 해당하는 것을 xx.c의 소스를 이해하고 델파이로 바꾼다는 뜻인가요?
    2. 그리고 보통 Bill Acceptor에서 돈을 넣자마자 어떤 데이터를 PC에 보낼텐데 그 데이터를 어떠한 형태든 Catch 하기 위해서는 제가 짤 프로그램에서  Timer 등을 써서  Catch 를 준비할 수 있도록 짜야되는거겠죠?
    아님 다른 방법이 있나요?

    그리고 마지막으로 컴포트를 제어하는 컴포넌트가 어떤 건가요? 제가 컴포트를 잘몰라서... 간단하게 나마 설명이나 컴포넌트를 추천해주시면 안될까요?
    정말 감사합니다.

    • Galaxy
    • 2004.04.27 20:59
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2004.04.27 22:43
      MS-SQL 쿼리분석기를 설치해서 접속되는지 테스트 해보시는 것이 어떨까요 접속이 되면 델파이 BDE쪽 문제...
    • Galaxy
      2004.04.28 00:54
      답변 감사 드립니다. 퀴리 분서기를 이용하여 접속 시도을 했지만 연결이  되지가 않네요(역으...
    • 최용일
      2004.04.27 20:44
      안녕하세요. 최용일입니다. C++이나 델파이나 같습니다. 둘 다 동일한 Windows API를 쓰니까요... Ge...
    • sarang프돌
      2004.04.27 20:47
      안녕하세요..최용일님앙~~ 항상 존 정보 주셔서 감사드립니다. 해보다 안되면 또 질문 올리것음다......
    • 성더기
      2004.04.30 23:02
      기준이 되는 테이블 을 정하시고(보니깐 AA테이블 인거 같네요) Left Outer Join은 사용해 보세여 SELECT...
    • 박수영
      2004.04.27 19:56
      자료의 예좀...
    • 임순철
      2004.04.27 20:11
      특별한 자료는 아니고 AA 테이블은 구매자 코드번호 와 날짜 BB 판매금액,   CC 판매금액...
    • 너구리
      2004.04.27 20:36
      세 테이블이 1:1:1관계가 아닌가 보죠... 어라 조인이 하나 더 들어갔네요.. 마지막꺼는 빼도 되는거...
    • 임순철
      2004.04.27 21:12
      질문이 잘못되었네요. 그래도 많은 도움이 되었습니다. 감사합니다.
    • 최인권
    • 2004.04.27 18:45
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2004.04.27 19:32
      안녕하세요 하얀까마귀 입니다. 음. 그 기능이 없나요? 리포트에서 이미지 쓴지가 오래되어서 ㅎㅎㅎ ...
    • 최인권
      2004.04.27 20:11
      답변 정말 감사드립니다. 근데 좀 간단한 예제라도 들어주시면 안될까요? 전 그냥 QRTimage를 생성해서 ...
    • 최인권
    • 2004.04.27 18:36
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2004.04.27 19:25
      안녕하세요 하얀까마귀 입니다. 음... 하드웨어 인터페이스라면 보통 씨나 비베로 많이들 작업을 합니다....
    • 최인권
      2004.04.27 20:25
      친절한 답변 정말 감사드립니다. 제가 지금 제어해야 하는 것은 Bill Acceptor 입니다. 지폐를 넣고 넣은...
    • sunny
    • 2004.04.27 12:11
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박수영
      2004.04.27 17:44
      잉 테스트 결과 잘 되는디요......
    • 장태원
      2004.04.27 20:04
      어딘가 찾아 보면, MDI 폼에 이미지 넣어주는 컴퍼넌트가 있긴 한데, 폼이 리사이징될 때, 약간 이상해...
    • 초짜그래머
      2004.04.29 06:51
      여기저기 떠돌다가, delphikorea.com 에서 우동진님의 글이 있어서 참조 했습니다. 우동진님이 링그...
    • 박수영
      2004.04.27 18:04
      전 이상하게도 RecNo가 안 되서 마지막 자료만 나오는데요... 근디 버그 하나는 찾았어요... ...
    • 임준
      2004.04.27 18:14
      먼저, 답변에 진심으로 감사드립니다. +1을 한 이유는 마지막 데이터가 안 나오길레....
    • 이재욱
    • 2004.04.27 03:30
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2004.04.27 03:36
      안녕하세요. 최용일입니다. TStrings객체는 추상객체입니다. 때문에 직접 인스턴스를 만들어서 사용하기...
    • 이재욱
      2004.04.27 03:46
      감사합니다. ^^ 그런게 있었군요. ^^
    • 포맨21
      2008.12.15 04:25
      감사합니다.. 문제 해결... 구글 보다 낳네요..
    • 석주현
      2004.04.27 02:57
      이렇게 하면 될꺼예요.. ^^ 음냐 원래 값이 아마도 더블형으로 저장이 되니깐요.. ^^ 그럼 아래 소스...
    • 김동열
      2004.04.27 18:34
      이렇게 했을경우 날짜가 1루 차이면 괜찬은데.. 이틀 차이가 날경우도 19가 나오네여... '2004-04-27 10:...
    • 석주현
      2004.04.27 18:57
      음냐 응용을 하실 수 있으실줄 알았는데 --;; 쩝.. 음 간단합니다.. 위에꺼 가지고 DecodeDa...
    • 이태경
    • 2004.04.27 00:47
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김민정
    • 2004.04.27 00:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박수영
      2004.04.27 00:39
      Timer를 이용해서 해 보세요...
    • 맑은물
    • 2004.04.27 00:07
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 맑은물
      2004.04.27 00:45
      sql컴포넌트의 sql속성에 다음과 같은 sql문을 사용하고 있습니다. select * from aTbale where trim(id...
    • [勳]후니
      2004.04.27 03:37
      query 컴포넌트를 더블클릭하면 플드 등록 부분이 있습니다. 그부분에 필드가 등록되어 있는지 확인해보...
    • 임준
    • 2004.04.26 23:56
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2004.04.27 00:42
      안녕하세요. 최용일입니다. TListView를 OwnerData로 사용할때 리스트뷰에서 데이터를 필요로 할 때 OnD...
    • 임준
      2004.04.27 00:48
      먼저 최용일님의 답변에 대단히 감사드립니다. 말씀하신 것처럼 while문을 빼서 실행해 보았는데 레코드...
    • 최용일
      2004.04.27 03:46
      안녕하세요. 최용일입니다. 흠... 쿼리결과를 그대로 이용하는 것은 문제가 있어보이네요... 리스트...
    • 박수영
      2004.04.27 00:58
      델파이 help의 내용입니다. procedure TForm1.FormCreate(Sender: TObject); var   I: ...
    • 임준
      2004.04.27 01:17
      답변해 주신 내용에 대해 감사드립니다. 그러나, 아래 예제로 적어주신 부분은 Ownerdata 프로퍼티를 사용...
    • 너구리
      2004.04.27 01:22
      디비가 뭔지요.. oracle 이라면 where 절에 rownum < 10? 11? 이렇게 넣어줘야 합니다. 하...
    • 석주현
      2004.04.27 03:53
      Function 이기 때문에 리턴 값을 갖게 되죠.. result:=(Pages.Objects[PageIndex] as TPage).Contro...
    • 박수영
    • 2004.04.26 22:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2004.04.27 03:48
      제가 그냥 보면 아실정도만 작성한 예입니다.. 날림입니다.. --;; 보시면 아실 수 있을꺼라 믿습니다...
    • 박수영
      2004.04.26 22:00
      이벤트에  onEnter, onExit에 각각 코딩하시면 됩니다....
    • 김의태
      2004.04.26 22:55
      아...무슨말인지 몰랐는데... 다시 생각해서 해보니까 되네요... 답변 감사드립니다....즐프~~^^
    • 박수영
      2004.04.26 22:57
      OnEnter는 Focus가 해당 Component에 있을때 발생하구요 OnExit는 Focus가 해당 Component를 벗어...