Q&A

  • 델파이란...
델파이가 언어라고 하셨는데, 개발환경으로 보는 것이 맞지않나 생각합니다.

예를 들면 Visual C++은 C++언어를 위한 개발 환경이고, MS 에서 자체 개발한 MFC

라는 라이브러리를 제공하고 있죠. Borland C++ 역시 C++ 언어를 위한 개발 환경이고 자사에서 개발한 OWL, BWCC 등의 라이브러리를 제공하고 있습니다.



델파이라는 개발 환경은 Pascal 언어를 위한 개발 환경이고 자사가 개발한 VCL이라는 라이브러리를 제공하고 있죠. Pascal은 C/C++ 같은 순수 compiler 언어여서 compiler 실행화일이 따로 존재하고 Linker 실행화일이 분명히 따로 존재 합니다.

델파이는 개발환경 내의 사용자 옵션에 맞게 compile 옵션을 생성해서 compiler 실행화일을 실행시켜준다고 생각하면 됩니다. Linker 역시 마찬가지죠.



Turbo Pascal 이라는 옛날 Borland 제품을 기억 하실 겁니다. 이 역시 Pascal 언어를 위한 개발 환경인데 Delphi는 이 제품의 연장 선상에 있죠. Borland 사는 표준 Pascal에다 자사 나름대로의 언어적 기능을 향상 시켜왔습니다. 이렇게 형성된 Pascal을 Borland Pascal이라고도 부르죠. Turbo Pascal 6.0(5.5부턴가?) 부터 사용된 Pascal compiler는 객체 지향적인 기능을 집어넣어 Object Pascal이라는 별칭을 갖게 되었죠. 그후 Turbo Pascal 7.0 그리고 Turbo Pascal for Window 1.0 로 이어지고 최종적으로 Delphi 1.0 라는 제품이 나오게 된 것이죠. Delphi 1.0 에서 사용한 Pascal compiler는 Borland Pascal 8.0 라고도 불리었고, 이때서야 비로서 현재 Delphi 에서 사용하는 Object Pascal 언어가 재대로된 모습을 갖추게된 때 입니다. Borland Object Pascal 이 가지는 객체지향적인 기능은 C++ 과 비교 하면 없는 기능이 있는것도 사실입니다. 하지만 이는 단순히 비교 만으로 평가를 할 수 없는 것이, Pascal 언어가 주는 명료함은 C/C++에는 없는 것입니다.

현재의 Delphi의 성능은 어느 툴과 비교 했을때 성능면에서 전혀 뒤지지 않는 다고 생각합니다. 혹자는 시스템 프로그래밍은 Visual C++ 로 해야 한다고 생각하는데 윈도우즈 프로그래밍은 운영체제에서 지원하는 API 함수에 의존하기 때문에 특정 툴이 적절하다 할 수는 없다고 봅니다. DLL 파일내의 함수를 Call 할 수만 있으면 되죠.

얘기가 길어 졌네요. 하여튼 Delphi 는 순수 machine code를 생성하는 pascal compiler 를 사용하므로 생성된 실행화일의 성능이 뛰어납니다. 개발환경 역시 상당히 직관적이고 WYSWYG(What You See is What You Get)에 충실한 모습을 보여주고 있으며, 특정 분야에만 적절한 툴이 아닌 범용으로 사용될 수 있고 탁월한 생산성을 보여 줄 것입니다.



PS : 저는 INPRISE 직원이 아닙니다.

5  COMMENTS
  • Profile
    김동수 1999.06.02 18:35
    DataBase 테이블에서 원하는 레코드만...

    한개 또는 여러개를 지우는 방법 좀 알려주세요...!

    모든 레코드 삭제는 되는데...

    원하는 한개의 레코드를 지우는 법을 모르겠어요..

    StringGrid를 사용하거든요..

    꼭 좀 알려주세요...

  • Profile
    이정욱 1998.12.13 05:29
    네.. 다 맞는 말씀입니다.

    한가지만 빼구요..

    델파이는 파스칼에 기반된 언어입니다.

    파스칼이 아닙니다.

    인프라이즈 홈페이지만 봐도 알 수 있습니다.

    음.. 어디었는지는 기억을 하지는 못하지만 델파이를 새로운 언어로 만들기에 여념이 없었습니다. 파스칼이 아니라는 것이죠.

    비교해보면 이미 많은 부분이 바뀌었죠.. 옛날 파스칼과는..

    파스칼 -> 오브젝트 파스칼 -> 델파이

    이런식으로 온것이죠.

    델파이는 언어입니다.

    파스칼 컴파일러를 사용하지는 않죠. 델파이 컴파일러를 사용합니다~

    감사합니다.



    김 완진 wrote:

    > 델파이가 언어라고 하셨는데, 개발환경으로 보는 것이 맞지않나 생각합니다.

    > 예를 들면 Visual C++은 C++언어를 위한 개발 환경이고, MS 에서 자체 개발한 MFC

    > 라는 라이브러리를 제공하고 있죠. Borland C++ 역시 C++ 언어를 위한 개발 환경이고 자사에서 개발한 OWL, BWCC 등의 라이브러리를 제공하고 있습니다.

    >

    > 델파이라는 개발 환경은 Pascal 언어를 위한 개발 환경이고 자사가 개발한 VCL이라는 라이브러리를 제공하고 있죠. Pascal은 C/C++ 같은 순수 compiler 언어여서 compiler 실행화일이 따로 존재하고 Linker 실행화일이 분명히 따로 존재 합니다.

    > 델파이는 개발환경 내의 사용자 옵션에 맞게 compile 옵션을 생성해서 compiler 실행화일을 실행시켜준다고 생각하면 됩니다. Linker 역시 마찬가지죠.

    >

    > Turbo Pascal 이라는 옛날 Borland 제품을 기억 하실 겁니다. 이 역시 Pascal 언어를 위한 개발 환경인데 Delphi는 이 제품의 연장 선상에 있죠. Borland 사는 표준 Pascal에다 자사 나름대로의 언어적 기능을 향상 시켜왔습니다. 이렇게 형성된 Pascal을 Borland Pascal이라고도 부르죠. Turbo Pascal 6.0(5.5부턴가?) 부터 사용된 Pascal compiler는 객체 지향적인 기능을 집어넣어 Object Pascal이라는 별칭을 갖게 되었죠. 그후 Turbo Pascal 7.0 그리고 Turbo Pascal for Window 1.0 로 이어지고 최종적으로 Delphi 1.0 라는 제품이 나오게 된 것이죠. Delphi 1.0 에서 사용한 Pascal compiler는 Borland Pascal 8.0 라고도 불리었고, 이때서야 비로서 현재 Delphi 에서 사용하는 Object Pascal 언어가 재대로된 모습을 갖추게된 때 입니다. Borland Object Pascal 이 가지는 객체지향적인 기능은 C++ 과 비교 하면 없는 기능이 있는것도 사실입니다. 하지만 이는 단순히 비교 만으로 평가를 할 수 없는 것이, Pascal 언어가 주는 명료함은 C/C++에는 없는 것입니다.

    > 현재의 Delphi의 성능은 어느 툴과 비교 했을때 성능면에서 전혀 뒤지지 않는 다고 생각합니다. 혹자는 시스템 프로그래밍은 Visual C++ 로 해야 한다고 생각하는데 윈도우즈 프로그래밍은 운영체제에서 지원하는 API 함수에 의존하기 때문에 특정 툴이 적절하다 할 수는 없다고 봅니다. DLL 파일내의 함수를 Call 할 수만 있으면 되죠.

    > 얘기가 길어 졌네요. 하여튼 Delphi 는 순수 machine code를 생성하는 pascal compiler 를 사용하므로 생성된 실행화일의 성능이 뛰어납니다. 개발환경 역시 상당히 직관적이고 WYSWYG(What You See is What You Get)에 충실한 모습을 보여주고 있으며, 특정 분야에만 적절한 툴이 아닌 범용으로 사용될 수 있고 탁월한 생산성을 보여 줄 것입니다.

    >

    > PS : 저는 INPRISE 직원이 아닙니다.





  • Profile
    이상국 1998.12.17 03:49
    이정욱 wrote:

    > 네.. 다 맞는 말씀입니다.

    > 한가지만 빼구요..

    > 델파이는 파스칼에 기반된 언어입니다.

    > 파스칼이 아닙니다.

    > 인프라이즈 홈페이지만 봐도 알 수 있습니다.

    > 음.. 어디었는지는 기억을 하지는 못하지만 델파이를 새로운 언어로 만들기에 여념이 없었습니다. 파스칼이 아니라는 것이죠.

    > 비교해보면 이미 많은 부분이 바뀌었죠.. 옛날 파스칼과는..

    > 파스칼 -> 오브젝트 파스칼 -> 델파이

    > 이런식으로 온것이죠.

    > 델파이는 언어입니다.

    > 파스칼 컴파일러를 사용하지는 않죠. 델파이 컴파일러를 사용합니다~

    > 감사합니다.

    >



    제견해는 김완진님과 같습니다.

    델파이는 제품명이지 언어가 아닙니다. 분명 파스칼 기반이고 또한

    인프라 사람들도 언어는 파스칼이라고 합니다. 매뉴얼에도 Delphi

    Object-Pascal Language Guide라는 헬프파일 -- 즉 델파이용 오브젝트

    파스칼 언어 안내-- 이 따로 존재하는것을 보더라도 언어는 엄연히

    파스칼입니다. 물론 니클라우스가 창시한 정통 파스칼이나 Ansi-Pascal과

    비교해 볼때 많이 변질이 되긴했지만요...



    흘려들은 이야긴데 C++빌더도 'Solaris(맞나)'라는 제품명인가 버젼명인가

    해서 출시한다는 소문이 있더군요. 암튼 C++빌더 제품명이 바뀐다고해서

    기반언어이름마저 바뀌진 않겠죠.



    뭐 제 생각이 절대진리라는게 아니라 다 견해차이죠....



    Only the Pascal...................

  • Profile
    이정욱 1998.12.17 08:58
    ^^ 네.. 맞는말씀입니다.. 하지만 인프라이즈사 측에서는 오브젝트 파스칼과는 다른 언어로 생각을 하는것 같군요.

    물론 델파이는 오브젝트 파스칼에 기반을 둔것입니다. 또 오브젝트 파스칼 컴파일러역시 내장되어 있구요..

    델파이 IDE를 델파이 언어를 편하게 사용하기 위한 툴이라고 생각하는것이 오히려 낳을 수 있습니다.

    델파이에서 디자인시 폼 파일들은 오브젝트 파스칼형식이지 오브젝트 파스칼은 아닙니다. 컴파일 조차 되지 않죠.

    즉, 델파이는 오브젝트 파스칼의 발전적인 형태이며, 인프라이즈사 측에서는 이것을 더이상 파스칼이라고 불리우는것을 별로 원하지 않습니다.

    델파이에 오브젝트 파스칼 메뉴얼이 들어있는것은 델파이안에서 오브젝트 파스칼을 사용할 수 있기 때문이며, 또 오브젝트 파스칼의 기능을 많이 이용해야 기존의 C++에서 사용해 왔던 함수들을 용이하게 사용할 수 있기 때문입니다.

    흐.. 역시 제 개인적인 견해 입니다만.. 인프라이즈측과 같은 생각입니다.~



    이상국 wrote:

    > 이정욱 wrote:

    > > 네.. 다 맞는 말씀입니다.

    > > 한가지만 빼구요..

    > > 델파이는 파스칼에 기반된 언어입니다.

    > > 파스칼이 아닙니다.

    > > 인프라이즈 홈페이지만 봐도 알 수 있습니다.

    > > 음.. 어디었는지는 기억을 하지는 못하지만 델파이를 새로운 언어로 만들기에 여념이 없었습니다. 파스칼이 아니라는 것이죠.

    > > 비교해보면 이미 많은 부분이 바뀌었죠.. 옛날 파스칼과는..

    > > 파스칼 -> 오브젝트 파스칼 -> 델파이

    > > 이런식으로 온것이죠.

    > > 델파이는 언어입니다.

    > > 파스칼 컴파일러를 사용하지는 않죠. 델파이 컴파일러를 사용합니다~

    > > 감사합니다.

    > >

    >

    > 제견해는 김완진님과 같습니다.

    > 델파이는 제품명이지 언어가 아닙니다. 분명 파스칼 기반이고 또한

    > 인프라 사람들도 언어는 파스칼이라고 합니다. 매뉴얼에도 Delphi

    > Object-Pascal Language Guide라는 헬프파일 -- 즉 델파이용 오브젝트

    > 파스칼 언어 안내-- 이 따로 존재하는것을 보더라도 언어는 엄연히

    > 파스칼입니다. 물론 니클라우스가 창시한 정통 파스칼이나 Ansi-Pascal과

    > 비교해 볼때 많이 변질이 되긴했지만요...

    >

    > 흘려들은 이야긴데 C++빌더도 'Solaris(맞나)'라는 제품명인가 버젼명인가

    > 해서 출시한다는 소문이 있더군요. 암튼 C++빌더 제품명이 바뀐다고해서

    > 기반언어이름마저 바뀌진 않겠죠.

    >

    > 뭐 제 생각이 절대진리라는게 아니라 다 견해차이죠....

    >

    > Only the Pascal...................





  • Profile
    개장수 1999.01.05 17:10
    고럼 C++ 은 어찌되는건지요 ? 고것도 C 에서 개발된거 아닌가 ? 으음. 잘 모르겄군요. 하지만 Delphi는 확실히 언어입니다. 역시 엿장수 맘 아니겠읍니까 ? 만든 사람들이 언어라는디 뭐 ....쩌업...



    • 박구남
    • 1999.01.07 11:10
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 정창헌
      1999.06.03 02:15
      db그리드의 칼럼의 글자크기조정이 안되는데 어떻게 하면 되나요? 부탁합니다...
    • 이정욱
      1999.01.09 10:49
      receivetext 이벤트의 부분을 보여주세요. 어떻게 코딩을 하셨는지 봐야 알겠습니다. 박구남 wrote: >...
    • 신인재
      1999.06.03 05:01
      디비그리드를 찍고 마우스 오른쪽버튼을 누르면 컬럼editor를 부를 수 있습니다. 거기서 각 칼럼의 폰트를 ...
    • 박구남
      1999.01.12 22:05
      아구 해결했네요 제가 개념이 좀 않잡혔던 모양입니다 그런데 receivetext는 있으나 마나하군요 보아하...
    • 기노현
    • 1999.06.03 00:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.06.03 05:04
      dgMultiSelect 옵션을 True로 주시고 함 해보세요.... 기노현 께서 말씀하시기를... > DBGrid에서 여러...
    • 박구남
    • 1999.01.07 11:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.01.09 10:49
      receivetext 이벤트의 부분을 보여주세요. 어떻게 코딩을 하셨는지 봐야 알겠습니다. 박구남 wrote: >...
    • 박구남
      1999.01.12 22:05
      아구 해결했네요 제가 개념이 좀 않잡혔던 모양입니다 그런데 receivetext는 있으나 마나하군요 보아하...
    • 신인재
      1999.06.03 05:11
      dgmultiselect 옵션을 True로 주시고 해당 레코드로 포인터를 옮긴 후 dbGrid1.SelectedRows.Curren...
    • 구민오
    • 1999.01.06 10:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.01.07 05:30
      구입하실 수 있습니다. 나이렉스로 전화해 보세요. 521-7900 입니다. 구민오 wrote: > RASAPI에 관한...
    • 유민호
      1999.06.03 21:57
      Query1.Delete는 안되지요! 따로 Delete SQL문장을 쓰시던가 아니면 TTable을 사용하세요. 그리고 Tabl...
    • 구민오
    • 1999.01.06 10:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.01.07 05:30
      구입하실 수 있습니다. 나이렉스로 전화해 보세요. 521-7900 입니다. 구민오 wrote: > RASAPI에 관한...
    • 이강범
      1999.06.02 19:23
      항상 델파이를 사랑하는 사람을 사랑하시는 당신에게 찬사를 보냅니다. 델파이에서 스크린 세이버를 직...
    • 이정욱
      1999.01.05 23:34
      프로세스를 금지시킨다는것 보다.. 먼저 데스크탑만한 폼을 하나 생성한 후 , 데스크탑의 그림들을 그대로...
    • 안치봉
      1999.06.02 21:13
      이강범 께서 말씀하시기를... > 항상 델파이를 사랑하는 사람을 사랑하시는 당신에게 찬사를 보냅니다. >...
    • 안치봉
      1999.06.02 20:10
      이강범 께서 말씀하시기를... > 항상 델파이를 사랑하는 사람을 사랑하시는 당신에게 찬사를 보냅니다. >...
    • 장석원
    • 1999.06.02 19:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박윤희
      1999.06.02 21:22
      장석원 께서 말씀하시기를... > 델에서 오라클 에러코드를 받을려면 어떻게 해야 하나요. > server 환경...
    • 김동수
      1999.06.02 18:35
      DataBase 테이블에서 원하는 레코드만... 한개 또는 여러개를 지우는 방법 좀 알려주세요...! 모든 레코...
    • 이정욱
      1998.12.13 05:29
      네.. 다 맞는 말씀입니다. 한가지만 빼구요.. 델파이는 파스칼에 기반된 언어입니다. 파스칼이 아닙니다...
    • 이상국
      1998.12.17 03:49
      이정욱 wrote: > 네.. 다 맞는 말씀입니다. > 한가지만 빼구요.. > 델파이는 파스칼에 기반된 언어입니...
    • 이정욱
      1998.12.17 08:58
      ^^ 네.. 맞는말씀입니다.. 하지만 인프라이즈사 측에서는 오브젝트 파스칼과는 다른 언어로 생각을 하는것 ...
    • 개장수
      1999.01.05 17:10
      고럼 C++ 은 어찌되는건지요 ? 고것도 C 에서 개발된거 아닌가 ? 으음. 잘 모르겄군요. 하지만 Delphi는 확...
    • 북해
    • 1999.06.02 18:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.06.02 20:12
      북해 께서 말씀하시기를... > 안녕하세요. MessageDlg에 표시되는 문자열 중에 일부분을 원하는 색상으로 ...
    • 꺄꿍
    • 1998.11.21 03:03
    • 9 COMMENTS
    • /
    • 0 LIKES
    • 박중호
      1999.06.02 11:39
      저는 정보처리 산업기사 실기를 델파이로 봅니다...근데 실기 문제의 조건중에 입력화면 클리어후 출력하...
    • 이 재원
      1999.01.05 16:56
      거시기 TMemo에는 32K Limit이 있는걸로 알고 있는데 혹시 더 큰거 아닌가요? 글코 크기 Value를 100에서 ...
    • 종모
      1999.06.02 17:40
      안녕하십니까. 델파이를 사랑하는 초보델돌이 종모입니다. 조금의 도움이 될수 있으면 합니다. -------...
    • 신인재
      1998.11.24 02:16
      냥냥.... 쩝...이상하군요...... 디비 익스플로러에서 잘된다면 델파이 어플에서도 잘되야 정상이거든요...
    • 꺄꿍
      1998.11.24 10:22
      신인재 wrote: > 냥냥.... > 쩝...이상하군요...... > 디비 익스플로러에서 잘된다면 > 델파이 어플에...
    • 신인재
      1998.11.24 22:40
      음냐.... 저두 방법이 없군요.... 이거 받아서 테스트 해보세요.. 실행파일과 소스를 함께 넣었습니다.....
    • 이정욱
      1998.11.21 14:56
      제 생각에는 Richedit데이터를 Memo에서 읽으려고 하는것 같네요. 리치에디트 데이터를 메모로 읽으려고 ...
    • • • •
    • 조영우
    • 1999.01.03 00:56
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김학선
      1999.06.02 11:10
      배열 포인터 사용을 알고 싶습니다. var ttt : array[0..10] of integer; ptrttt : pointer; //...
    • 이정욱
      1999.01.03 02:11
      델파이의 TServerSocket과 TClientSocket을 이용하시면 됩니다. 그 컴포넌트들로 TCP/IP 를 이용하여 서로...
    • 안치봉
      1999.06.02 20:35
      김학선 께서 말씀하시기를... > 배열 포인터 사용을 알고 싶습니다. > > var > ttt : array[0..10]...
    • 강경중
    • 1999.06.02 06:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      1999.06.02 17:59
      강경중 께서 말씀하시기를... > 김영대님이 올리신 자료중에 > 중복 실행방지 자료가 있습니다.(마지막에...
    • 이정욱
      1999.01.05 23:34
      프로세스를 금지시킨다는것 보다.. 먼저 데스크탑만한 폼을 하나 생성한 후 , 데스크탑의 그림들을 그대로...
    • 조영우
    • 1999.01.03 00:56
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 박형진
      1999.06.02 03:34
      스트링그리드에서의 삽입,삭제를 하려고 할때에 삽입시 원하는 위치에 삽입되고, 중간 row 삭제시 아래부...
    • 이정욱
      1999.01.03 02:11
      델파이의 TServerSocket과 TClientSocket을 이용하시면 됩니다. 그 컴포넌트들로 TCP/IP 를 이용하여 서로...
    • 김경수
      1999.06.02 04:14
      안녕하세요. 일반 서적을 거론하는게 좀 그렇지만요. "delphi programming bible" 석봉현,신문섭공저 라는...
    • 최진숙
    • 1998.12.28 21:09
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 오승섭
      1999.06.02 03:25
      TreeView에서 다른TreeView로 Drag&Drop하는 방법 좀 부탁드립니다.
    • 이정욱
      1998.12.29 00:26
      가능하면 Async의 질문은 나이렉스 고객지원 게시판에 해주시기 바랍니다. TCom의 예제를 보시면 OnProtoc...
    • 김경수
      1999.06.02 04:24
      안녕하세요. 아래의 싸이트에 구창민님 홈페이지의 팁/강좌란에 가셔서 "treeview"라고 입력하시면 정지훈...
    • 최진숙
    • 1998.12.28 21:09
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 조민연
      1999.06.02 03:12
      TreeView를 사용해서 업무순서도를 만들려고 합니다. 그런데 TreeView에서 Add나 AddChild를 사용하면 ...
    • 이정욱
      1998.12.29 00:26
      가능하면 Async의 질문은 나이렉스 고객지원 게시판에 해주시기 바랍니다. TCom의 예제를 보시면 OnProtoc...
    • 김경수
      1999.06.02 04:26
      안녕하세요. 위의 질문에 보시면 구창민님 홈의 팁/강좌란에 treeview강좌가 있습니다. treeview의 전반...
    • 하명훈
    • 1999.06.02 02:44
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이현주
      1998.12.25 02:04
      asyncpro를사용하여 모뎀제어하는 프로글렘을하는데 comnumber를 property 나 messagebox에서 받지않고 w...
    • 변대섭
      1999.06.02 18:42
      하명훈 께서 말씀하시기를... > TDatasource가 update될때 현재 날짜를 필드에 넣고 싶은데 시간까지 같이...
    • 박현정
      1998.12.25 05:40
      Async의 Comport컴포넌트를 이용하면 현재 시스템에서 사용가능한 comport들을 가져올 수 있습니다. 컴포트...
    • 김경수
      1999.06.02 04:09
      안녕하세요.. 저는요 일반 테이블에 날짜를 입력하는경우에는 datetype보다는 그냥 integer형으로 저장하...