Q&A

  • 꼭 답변부탁드립니다
form1 := Tform1.create(application) 과

form1 := Tform1.create(self) 차이를 알면 프로그램 개발에 도움이

될 것 같습니다. 부탁합니다.

2  COMMENTS
  • Profile
    갱민이 2000.05.18 11:36
    초보자 wrote:

    > form1 := Tform1.create(application) 과

    > form1 := Tform1.create(self) 차이를 알면 프로그램 개발에 도움이

    > 될 것 같습니다. 부탁합니다.

    ---------------------------------------------------------------------------------

    Create method는 모든 Objects와 Components가 사용가능하고 새로운 instance를 만

    드는 것이다.



    self는 무엇인가??.. Call될 때 method에서 자동적으로 함축적인 parameter로

    간주되어 지는 것으로 현재 Object의 pointer로 정의되며 method안에서 특정 object

    의 필드를 참조하기 위한 도구로 사용되어 지는 것이다.(The self key word refers

    to an implict parameter automatically passed to any method when it is

    called. Self can be defined as a pointer to the current object(a current

    instance of th class)and is used by the language to refer to the fields

    of that specific object inside a method. --- mastering Delphi 중----)



    application은 무엇인가. 하나의 window다. 즉 프로그램의 Window뒤의 숨겨진 또

    다른 Window다. application내의 다른 폼들과 연결하기 위해 사용되어 진다.

    (The application is awindow! .... When the windows of your program are

    behind other windows,..... In other words, then hidden application

    window is used to connect then different forms of the application)

    application은 하나 또는 그 이상의 폼으로 구성되어 진다. 즉 그 폼과 그 폼에 놓여

    진 컴포넌트를 포함한다.(We have seen that Delphi applications are made up

    of one or more forms. Everything involves forms and components placed

    inside forms,...)

    ----------------------------------------------------------------------------------

    self와 application의 차이점은 무엇인가.????

    위의 정의들은 공부한 책들의 내용을 정리한 것이다. 무척 복잡한 것 같지만 읽어보면

    조금은 이해가 되리라 본다.(^^;)



    위의 정의대로라면 Tform1.create(self)에서의 self는 현재 Object인 폼의

    pointer이고 생성된 폼에 대한 제어권을 self가 가지며 프로그램 종료와 관계없이 폼

    이 종료 될때 하위의 것들도 Free시켜 준다.



    Tform1.create(application)Application은 이 폼의 owner 즉 폼과 폼의 컴포넌트

    들을 포함하고 있는 또 하나의 object(pointer)이다. 생성된 폼의 제어권은

    application이 가지며 프로그램 자체가 종료되어야만 폼과 하위의 것들이 Free된다.



    물론 생성을 했으니까 Free를 시켜주는 것은 당연하지만 생성될 폼이 한정적으로 사

    용될 것이냐 아님 프로그램 전반에서 사용될 것이냐에 따라 사용해야 한다.



    이상 개인적인 생각과 mastering Delphi와 이 게시판에 올려진 하얀 까마귀님의 글을

    참조하였다. 미흡하나마 도움이 되었으면 한다.





  • Profile
    한차으히 2000.05.18 08:56
    초보자 wrote:

    > form1 := Tform1.create(application) 과

    > form1 := Tform1.create(self) 차이를 알면 프로그램 개발에 도움이

    > 될 것 같습니다. 부탁합니다.



    *^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^*

    저도 차이는 자세히는 모르나 경험에 의해서 보면

    application 는 부모폼에서 자식폼을 생성해서 사용할때 보통 application를 쓰구요,

    self는 보통 statusbar콤포넌트등을 미리 생성하지 않고 프로그램 코딩중에 동적으로

    생성시에 사용하지요. 그러니까 프로그램 디자인시에 미리 statusbar를 배치하지않고

    프로그램실행시에 생성을 해야 되니까 statusbar1.create(self) 라고 사용하겠지요.

    생각해보세요! 지금 실행중인 main폼에서 또다시 Tfmain.create(self)라고 사용할 수 없지요. 폼의 이름이 같았지니까 error를 발생하지요.

    도움이 되었난 모르겠군요.^^

    *^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^*

    • 하얀까마귀
      2000.05.18 12:41
      안녕하세요 하얀까마귀 입니다. 제가 인터베이스는 안써봐서 정확한 답변이 될지는 모르겠는데... 일...
    • 최석기
      2000.05.18 05:25
      한승구 wrote: > 실행되는 화면위에 있는 Panel 컴퍼넌트를 > 마우스로 드래그해서 옮기려면 어떻게 > ...
    • 한승구
      2000.05.18 19:36
      최석기 wrote: > 한승구 wrote: > > 실행되는 화면위에 있는 Panel 컴퍼넌트를 > > 마우스로 드래그해서...
    • 황유동
      2000.05.18 20:33
      한승구 wrote: > 최석기 wrote: > > 한승구 wrote: > > > 실행되는 화면위에 있는 Panel 컴퍼넌트를 > ...
    • 임형호
      2000.05.18 07:26
      사발우성 wrote: > 전 SQL검색기 폼에서 > > 콤보박스와 에디트박스를 사용해서 > > 콤보박스로 나...
    • 초보자
    • 2000.05.18 05:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 갱민이
      2000.05.18 11:36
      초보자 wrote: > form1 := Tform1.create(application) 과 > form1 := Tform1.create(self) 차이를 알면 ...
    • 한차으히
      2000.05.18 08:56
      초보자 wrote: > form1 := Tform1.create(application) 과 > form1 := Tform1.create(self) 차이를 알면 ...
    • 왕초보
    • 2000.05.18 05:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 홍세비
      2000.05.18 09:18
      왕초보 wrote: > > 메일 보내는 컴포넌트 입니다... > > 그런데... 한글을 쓰면... 깨지는 디요? > ...
    • 임형호
      2000.05.18 07:28
      델파이 초보 wrote: > Dbgrid에 나타난 내용을 dbgrid상에서 수정하여 저장할 수는 없나요? > 조언 부탁...
    • 사발우성
      2000.05.18 05:27
      델파이 초보 wrote: > Dbgrid에 나타난 내용을 dbgrid상에서 수정하여 저장할 수는 없나요? > 조언 부탁...
    • 조규춘
      2000.05.18 07:14
      사발우성 wrote: > 델파이 초보 wrote: > > Dbgrid에 나타난 내용을 dbgrid상에서 수정하여 저장할 수는 ...
    • 코림
    • 2000.05.18 03:48
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 빙구
      2000.05.18 04:01
      예전에 cti작업을 좀해봤었는데 어떤걸 사용하시는지.. 다이얼로직 보드를 사용하신다면 쉽게 구현이 되는...
    • 순철
    • 2000.05.18 03:35
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 신승철
    • 2000.05.18 03:16
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.05.18 03:39
      신승철 wrote: > 다들 수고가 많으십니다. > 다름이 아니오라. StringGrid에는 FixedCols라는 Property가...
    • 신승철
      2000.05.18 19:59
      조규춘 wrote: > 신승철 wrote: > > 다들 수고가 많으십니다. > > 다름이 아니오라. StringGrid에는 Fix...
    • 조규춘
      2000.05.18 21:17
      신승철 wrote: > 조규춘 wrote: > > 신승철 wrote: > > > 다들 수고가 많으십니다. > > > 다름이 아니...
    • 하얀까마귀
      2000.05.18 11:07
      안녕하세요 하얀까마귀 입니다... 죄송한데.. 그냥 RecordCount하시면 안되나요??? 이걸 모르시지는 ...
    • 어린왕자
      2000.05.18 12:02
      앗..죄송..레코드수입니다.. 그니깐..보통 데이타가 나온 그리드에..앞에다..칼럼하나를 더붙여서..자동증...
    • 하얀까마귀
      2000.05.19 01:49
      안녕하세요 하얀까마귀 입니다... 검색한번 해보시면 되는데.... 13739, 12275에 얼마전 제가 올린 ...
    • 조규춘
      2000.05.18 03:33
      어린왕자 wrote: > 질문 그대로입니다.. > 검색 결과 필드의 갯수를 알고 싶어서 그러는데.. > 어떻게 ...
    • 최석기
      2000.05.18 03:24
      어린왕자 wrote: > 질문 그대로입니다.. > 검색 결과 필드의 갯수를 알고 싶어서 그러는데.. > 어떻게 ...
    • 황남철
    • 2000.05.18 02:48
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 신범호
      2000.05.18 03:11
      황남철 wrote: > procedure TFDATA0102.BtnFindClick(Sender: TObject); > var > i : integer; > i...
    • 김수봉
      2000.05.18 03:00
      황남철 wrote: > procedure TFDATA0102.BtnFindClick(Sender: TObject); > var > i : integer; > i...
    • 박충국
    • 2000.05.18 02:38
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 강인규
      2000.05.18 03:24
      혹시 dbedit가 디비와 연결되어 있지 않은게 아닙니까? dbedit는 디비의 자료를 뿌려주기 때문에 수정모드...
    • 각시탈
      2000.05.18 03:22
      아는 데로 적어봅니다. DBEdit의 속성자체는 EditBox처럼 독자적인 Edit기능이 없습니다. 그래서 DBEdit...
    • 조규춘
      2000.05.18 03:21
      박충국 wrote: > 안녕하십니까.!~~ > 전 델파이 초보이거든요...!~~~ > 그래서 좀 물어볼려구요...!~~ ...
    • 올랭이
    • 2000.05.18 02:26
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 나현호
      2000.05.18 04:06
      디비가 무엇인지, 필드타입이 무엇인지 몰라 쉽게 개념만 잡을 수 있게 적어 봅니다. with Query do v...
    • 각시탈
      2000.05.18 03:28
      올랭이 wrote: > query1로 일련번호를 증가 시킬려구 하는데 잘 안되네요.. > > table name : 인적사항...
    • 김병건
      2000.05.18 01:53
      넘슬픈이 wrote: > insufficient Memory에 관한 질문입니다... > > 제가 지금 하구 있는 내용은 직...
    • 구창민
      2000.05.18 04:37
      안산에서 초보... wrote: > 델파이로 유닉스 계열 운영체제에서 실행되는 프로그램 작성이 가능한지 알구 ...
    • 각시탈
      2000.05.20 02:02
      저도 인터넷을 돌아 다니다.. 우연히.. 도움이 되셨으면 합니다. procedure TForm1.Button6Click(Send...