Q&A

  • 클래스 멤버함수 호출할때 에러를 고치는 방법은?
아래처럼 클래스를 구성하여보았습니다.

그런데 멤버에서 함수를 호출할때 에러가 나는 군요....

해결좀 해주시와요...



unit Unit1;



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;



type

class1 = class(TObject)

public

procedure CallOne(szString : string);

end;



class2 = class(TObject)

public

classOne : class1;

procedure CallTwo(szstring : string);

end;



TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

c2 : class2;

end;



var

Form1: TForm1;



implementation



{$R *.DFM}





procedure class1.CallOne(szString : string);

begin

ShowMessage(szstring);

end;



procedure class2.CallTwo(szstring : string);

begin

classone.CallOne(szString);

end;



procedure TForm1.Button1Click(Sender: TObject);

begin

c2.CallTwo('이거 출력');

end;



end.



1  COMMENTS
  • Profile
    최용일 2000.08.31 05:32
    안녕하세요. 델파이세상(http://www.freechal.com/delphiworld)의 최용일입니다.



    모든 객체는 사용하기 전에 반드시 생성을 해야 합니다. 아래서 보면



    Class2.CallTwo메소드에서 ClassOne이라는 객체를 사용하시는데 어디에도 이 객체를



    생성하는 코드는 없군요.



    ClassOne : Class1.Create; 이런식으로 호출해서 ClassOne란 인스턴스를 생성하시고



    다 쓴후에 ClassOne.Free이렇게 메모리에서 제거를 해주세요.



    ^^ 항상 즐코하세요.



    이해원 wrote:

    > 아래처럼 클래스를 구성하여보았습니다.

    > 그런데 멤버에서 함수를 호출할때 에러가 나는 군요....

    > 해결좀 해주시와요...

    >

    > unit Unit1;

    >

    > interface

    >

    > uses

    > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    > StdCtrls;

    >

    > type

    > class1 = class(TObject)

    > public

    > procedure CallOne(szString : string);

    > end;

    >

    > class2 = class(TObject)

    > public

    > classOne : class1;

    > procedure CallTwo(szstring : string);

    > end;

    >

    > TForm1 = class(TForm)

    > Button1: TButton;

    > procedure Button1Click(Sender: TObject);

    > private

    > { Private declarations }

    > public

    > { Public declarations }

    > c2 : class2;

    > end;

    >

    > var

    > Form1: TForm1;

    >

    > implementation

    >

    > {$R *.DFM}

    >

    >

    > procedure class1.CallOne(szString : string);

    > begin

    > ShowMessage(szstring);

    > end;

    >

    > procedure class2.CallTwo(szstring : string);

    > begin

    > classone.CallOne(szString);

    > end;

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > c2.CallTwo('이거 출력');

    > end;

    >

    > end.

    >