Q&A

  • 동적생성한 이미지가 보이질 않네요...제발 부탁드립니다.
동적으로 생성한 이미지가 보이질 않네요.

어떻게 하는건지 고수님의 조언을 부탁드립니다.

참고로 애니채팅을 구현할려고 합니다...

아래 저의 잘못된 소스입니다....



먼저 클래스로 캐릭터이미지, 위치정보, 유저이름을 선언했습니다.

TUser = class

Image : TImage;

Chr_num, ToX, NowX, ToY, NowY : integer;

UserName : String;

public

constructor Create(Owner : TObject);

end;



var

Mainfrm: TMainfrm;



Name1 : String;

Chr_num, Current : Integer;

ToX, ToY, NowX, NowY {LastX, LastY} : Integer;

User : array[0..20] of TUser;

UserCount : integer;

S: array[0..20] of Char;



implementation



uses LoginForm;



{$R *.DFM}



생성자를 선언

constructor TUser.Create(Owner : TObject);

begin

Self.NowX := 100;

Self.ToX := 100;

Self.NowY := 200;

Self.ToY := 200;

Self.Image := TImage.Create(Mainfrm);

end;





procedure TMainfrm.FormShow(Sender: TObject);

begin

.

.

.

User[UserCount] := TUser.Create(Mainfrm);

User[UserCount].UserName := Name1;

StrCopy(S, Default_path);

StrCat(S, Pchar(IntToStr(Chr_num)));

StrCat(S, Default_ext);

User[UserCount].Image.Picture.LoadFromFile(S);

User[UserCount].Image.Top := 200;

User[UserCount].Image.Left := 100;

.

.

.



end;



무엇이 잘못되었는지 조언을 부탁드립니다.

제가 델파이는 초보라서 참 어렵네요...



2  COMMENTS
  • Profile
    여덕수 2000.04.12 01:33
    안녕하세요.. 마당쇠 여덕수입니다...



    TImage의 Parent를 정해주세요..

    모든 컨트롤들은 디자인타임에서 폼위에 올려놓을때, 자동으로 생성이 되고

    Parent를 지정받게 됩니다.

    그런데 동적으로 생성할때는 Create로 생성을 할뿐, Parent를 자동으로

    지정해주지는 않습니다.

    따라서 생성한 다음 적당한 위치에서 Parent를 지정해주어야 합니다.



    ...

    Image1.Parent := Panel1;

    ...



    과 같이 되겠죠...

    그럼...





    노광민 wrote:

    > 동적으로 생성한 이미지가 보이질 않네요.

    > 어떻게 하는건지 고수님의 조언을 부탁드립니다.

    > 참고로 애니채팅을 구현할려고 합니다...

    > 아래 저의 잘못된 소스입니다....

    >

    > 먼저 클래스로 캐릭터이미지, 위치정보, 유저이름을 선언했습니다.

    > TUser = class

    > Image : TImage;

    > Chr_num, ToX, NowX, ToY, NowY : integer;

    > UserName : String;

    > public

    > constructor Create(Owner : TObject);

    > end;

    >

    > var

    > Mainfrm: TMainfrm;

    >

    > Name1 : String;

    > Chr_num, Current : Integer;

    > ToX, ToY, NowX, NowY {LastX, LastY} : Integer;

    > User : array[0..20] of TUser;

    > UserCount : integer;

    > S: array[0..20] of Char;

    >

    > implementation

    >

    > uses LoginForm;

    >

    > {$R *.DFM}

    >

    > 생성자를 선언

    > constructor TUser.Create(Owner : TObject);

    > begin

    > Self.NowX := 100;

    > Self.ToX := 100;

    > Self.NowY := 200;

    > Self.ToY := 200;

    > Self.Image := TImage.Create(Mainfrm);

    > end;

    >

    >

    > procedure TMainfrm.FormShow(Sender: TObject);

    > begin

    > .

    > .

    > .

    > User[UserCount] := TUser.Create(Mainfrm);

    > User[UserCount].UserName := Name1;

    > StrCopy(S, Default_path);

    > StrCat(S, Pchar(IntToStr(Chr_num)));

    > StrCat(S, Default_ext);

    > User[UserCount].Image.Picture.LoadFromFile(S);

    > User[UserCount].Image.Top := 200;

    > User[UserCount].Image.Left := 100;

    > .

    > .

    > .

    >

    > end;

    >

    > 무엇이 잘못되었는지 조언을 부탁드립니다.

    > 제가 델파이는 초보라서 참 어렵네요...

    >

  • Profile
    김봉준 2000.04.12 00:20
    쩝.. 제가 델파이는 잘 모르지만요.. 혹시.. 동적생성한 image의



    Height와 Width의 크기가 잘못되지 않았나 싶네요..







    노광민 wrote:

    > 동적으로 생성한 이미지가 보이질 않네요.

    > 어떻게 하는건지 고수님의 조언을 부탁드립니다.

    > 참고로 애니채팅을 구현할려고 합니다...

    > 아래 저의 잘못된 소스입니다....

    >

    > 먼저 클래스로 캐릭터이미지, 위치정보, 유저이름을 선언했습니다.

    > TUser = class

    > Image : TImage;

    > Chr_num, ToX, NowX, ToY, NowY : integer;

    > UserName : String;

    > public

    > constructor Create(Owner : TObject);

    > end;

    >

    > var

    > Mainfrm: TMainfrm;

    >

    > Name1 : String;

    > Chr_num, Current : Integer;

    > ToX, ToY, NowX, NowY {LastX, LastY} : Integer;

    > User : array[0..20] of TUser;

    > UserCount : integer;

    > S: array[0..20] of Char;

    >

    > implementation

    >

    > uses LoginForm;

    >

    > {$R *.DFM}

    >

    > 생성자를 선언

    > constructor TUser.Create(Owner : TObject);

    > begin

    > Self.NowX := 100;

    > Self.ToX := 100;

    > Self.NowY := 200;

    > Self.ToY := 200;

    > Self.Image := TImage.Create(Mainfrm);

    > end;

    >

    >

    > procedure TMainfrm.FormShow(Sender: TObject);

    > begin

    > .

    > .

    > .

    > User[UserCount] := TUser.Create(Mainfrm);

    > User[UserCount].UserName := Name1;

    > StrCopy(S, Default_path);

    > StrCat(S, Pchar(IntToStr(Chr_num)));

    > StrCat(S, Default_ext);

    > User[UserCount].Image.Picture.LoadFromFile(S);

    > User[UserCount].Image.Top := 200;

    > User[UserCount].Image.Left := 100;

    > .

    > .

    > .

    >

    > end;

    >

    > 무엇이 잘못되었는지 조언을 부탁드립니다.

    > 제가 델파이는 초보라서 참 어렵네요...

    >