C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[4597] 소스를 자세히 보니.. 상당히 많이 변했네요.
박지훈.임프 [cbuilder] 2193 읽음    2002-05-03 15:26
스크린샷에 있는 소스를 들여다보고 옮겨써봤습니다.

언뜻 보시면 기존의 델파이 문법이랑 별로 달라보이지 않는데요.
뜯어보면 실로 엄청난 변화가 있네요. 델파이가 아닌 다른 언어라고 해도 믿을 정도...

program ConvertIt;

uses
  Borland.Strings, Borland.Numbers, Borland.C// 이하 안보임

const
  AppTitle = 'Celsius to...';

type
  TForm1 = class(TForm)
  private
    DoitButton: TButton;
    CelsiusEdit: TNumUpDown;
    ResultList: TListBox;
    MainMenu: TMainMenu;
    FileItem: TMenuItem;
    ExitItem: TMenuItem;
    HelpItem: TMenuItem;
    AboutItem: TMenuItem;
    procedure DoitButtonClick(Sender: TObject; Arg// 이하 안보임
    procedure ExitItemClick(Sender: TObject; Args:// 이하 안보임
    procedure AboutItemClick(Sender: TObject; Args// 이하 안보임
  protected
    procedure ReadState;
  public
    constructor Create;
  end;

var
  Form1: TForm1;

procedure TForm1.Convert;
var
  LCelsius: Double;
begin
  LCelsius := DecimalToFloat(CelsiusEdit.Value);
  with ResultList do
  begin
    BeginUpdate;
// 이하 안보임

가장 윗 라인에 보시면, 다음과 같이 되어있죠.
program ConvertIt;
program 문은 파스칼 코드의 메인 유닛에 들어가는 것으로, 윈도우용 델파이에서는 프로젝트 소스에
위치하고 있었습니다. (Application 초기화하는 소스 유닛 아시죠?)
그런데 이게 폼 유닛으로 옮겨왔다는 것은, 프로젝트 파일 없이 폼 유닛만으로 프로젝트를 구성할
수 있게 되었다는 것인지...? 어떤 의미인지 혼란스럽군요.

또... interface 와 implementation 선언이 사라졌습니다.
C++로 치면 헤더와 바디 소스를 함께 구성하는 파스칼의 특성상 이들 구문으로 선언부와 구현부를
나누는데.. 이게 없어지다니.. 좀 황당하네요.

그다음으로, uses 부분을 보시면, Borland.Strings, Borland.Numbers, 이런 식으로 앞에 Borland가
붙어있는 게 보입니다. 아마도 닷넷의 패키지들을 그대로 uses에서 사용할 수 있어서 구분하기 위해
델파이의 패키지들은 Borland를 추가한 거 같네요.

그리고, 사소하지만, Form 클래스 내에 보시면 정적으로 생성되는 컴퍼넌트들의 부분, 즉 폼 클래스
선언 내의 가장 앞부분에(버튼 등의 컴퍼넌트 선언 바로 앞) private로 적혀있네요. 기존의 델파이에선
이것이 없었죠. 또, TNumUpDown이라는 새로운 컴퍼넌트가 보이구요. 이름에 Edit가 붙이있는 걸 봐선
기존의 샘플 팔레트의 스핀에디트와 비슷한 것 같습니다.

그다음으로.. 버튼의 핸들러를 보시죠.
OnClick 핸들러의 인자로 Sender외에 Args라는 인자가 추가된 모양입니다. 이게 무슨 타입인지는
짤려서 안보이는데... 어쨌든 이게 어디에 쓰일지 궁금하네요.

기존 델파이에서 OnClick 핸들러는 TNotifyEvent 타입이었는데, 이게 만약 닷넷 버전에서도 유효하다면
델파이 닷넷의 TNotifyEvent 타입에 Args라는 인자가 기본으로 추가되었을 수 있겠습니다.
TNotifyEvent는 모든 이벤트의 가장 기본이 되는 이벤트 타입인데, 그렇다면 모든 이벤트에 Args가
추가되었을 가능성도 있겠군요.

그리고.. (이전의) 임플멘테이션 부분을 보면, 시작부분의 {$R *.dfm} 부분, 즉 폼 리소스를 참조하라는
지시자가 사라졌습니다. 또, 폼의 생성자에 인자가 없는 것도 이상해보이는군요.
함수내에 있는 DecimalToFloat()라는 메소드도 없던 거네요. 닷넷 런타임인가...

보시다시피.. 기존의 델파이나 카일릭스와는 너무 변했네요.
interface 와 implementation 선언이 없어진 것을 보면 아예 기존의 파스칼 언어 자체의 변화도
클 것 같습니다.

사소하다고 하실 분도 있겠지만.. 제게는 상당히 생소해보이네요.
비주얼베이직이 닷넷 버전에서 변한 것 만큼은 아니길 바랍니다..

그럼...

김백일.cedar [cedar]   2002-05-06 01:20 X
최소한 Unmanaged C++에서 Managed C++로 변한 정도의 차이는 있을것 같군요.

+ -

관련 글 리스트
4595 델파이 닷넷 스크린샷이 떴군요.. 박지훈.임프 2455 2002/05/03
4597     소스를 자세히 보니.. 상당히 많이 변했네요. 박지훈.임프 2193 2002/05/03
4647         [펌]기존의 델파이와 다른게 하나도 없습니다. 김백일 2412 2002/05/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.