Q&A

  • 폼의 동적생성 에 한가지더...
type

TFrm_Mess = class(TForm)

...

UserName: string;

end;





var

Found: Boolean;

begin

Found := False;

for I := 0 to Screen.FormCount-1 do

begin

if Screen.Forms[I] is TFrm_Mess then

if TFrm_Mess(Screen.Forms[I]).UserName = 메세지보낸유저이름 then

begin

Screen.Forms[I].Show;

요기서.. -> Frm_Mess.memo1.add(메시지내용);

Found := True;

end;

end;

if not Found then // 메세지보낸유저와 대화하는 폼이 없다면

begin

Frm_Mess := TFrm_Mess.Create(nil); // 새로 생성

Frm_Mess.Show;

end;

end;



위에서 '요기서' 같이 하면서... 해당창이 앞으로 show는 돼는데요...



메세지는 가장 나중에 생성된 폼에 뜨거든요.... 폼 지정을 잘못하거 같은데...



Screen.Forms[I].Show; 이렇게 폼을 활성화했으면... 그 해당폼의 컴포는 어케



선택을 해야 할런지요.... 아까답변해주신 최용일님 한번더 부탁드리겠습니다.



2  COMMENTS
  • Profile
    최용일 2001.08.03 04:26
    안녕하세요. 최용일입니다.



    Frm_Mess란 폼을 새로 지정해주세요... 그럼 문제 없을듯...



    var

    Found: Boolean;

    begin

    Found := False;

    for I := 0 to Screen.FormCount-1 do

    begin

    if Screen.Forms[I] is TFrm_Mess then

    if TFrm_Mess(Screen.Forms[I]).UserName = 메세지보낸유저이름 then

    begin

    Frm_Mess := Screen.Forms[I];

    Frm_Mess.Show;

    Frm_Mess.memo1.add(메시지내용);

    Found := True;

    Break;

    end;

    end;

    if not Found then // 메세지보낸유저와 대화하는 폼이 없다면

    begin

    Frm_Mess := TFrm_Mess.Create(nil); // 새로 생성

    Frm_Mess.Show;

    end;

    end;



    ^^ 항상 즐코하세요...



    나옹맨 wrote:

    > type

    > TFrm_Mess = class(TForm)

    > ...

    > UserName: string;

    > end;

    >

    >

    > var

    > Found: Boolean;

    > begin

    > Found := False;

    > for I := 0 to Screen.FormCount-1 do

    > begin

    > if Screen.Forms[I] is TFrm_Mess then

    > if TFrm_Mess(Screen.Forms[I]).UserName = 메세지보낸유저이름 then

    > begin

    > Screen.Forms[I].Show;

    > 요기서.. -> Frm_Mess.memo1.add(메시지내용);

    > Found := True;

    > end;

    > end;

    > if not Found then // 메세지보낸유저와 대화하는 폼이 없다면

    > begin

    > Frm_Mess := TFrm_Mess.Create(nil); // 새로 생성

    > Frm_Mess.Show;

    > end;

    > end;

    >

    > 위에서 '요기서' 같이 하면서... 해당창이 앞으로 show는 돼는데요...

    >

    > 메세지는 가장 나중에 생성된 폼에 뜨거든요.... 폼 지정을 잘못하거 같은데...

    >

    > Screen.Forms[I].Show; 이렇게 폼을 활성화했으면... 그 해당폼의 컴포는 어케

    >

    > 선택을 해야 할런지요.... 아까답변해주신 최용일님 한번더 부탁드리겠습니다.

    >

  • Profile
    나옹맨 2001.08.03 20:24
    [Error] Main.pas(223): Incompatible types: 'TFrm_Mess' and 'TForm'



    이런 에러가 나오는데요?



    우짜지요?



    최용일 wrote:

    > 안녕하세요. 최용일입니다.

    >

    > Frm_Mess란 폼을 새로 지정해주세요... 그럼 문제 없을듯...

    >

    > var

    > Found: Boolean;

    > begin

    > Found := False;

    > for I := 0 to Screen.FormCount-1 do

    > begin

    > if Screen.Forms[I] is TFrm_Mess then

    > if TFrm_Mess(Screen.Forms[I]).UserName = 메세지보낸유저이름 then

    > begin

    > Frm_Mess := Screen.Forms[I];

    > Frm_Mess.Show;

    > Frm_Mess.memo1.add(메시지내용);

    > Found := True;

    > Break;

    > end;

    > end;

    > if not Found then // 메세지보낸유저와 대화하는 폼이 없다면

    > begin

    > Frm_Mess := TFrm_Mess.Create(nil); // 새로 생성

    > Frm_Mess.Show;

    > end;

    > end;

    >

    > ^^ 항상 즐코하세요...

    >

    > 나옹맨 wrote:

    > > type

    > > TFrm_Mess = class(TForm)

    > > ...

    > > UserName: string;

    > > end;

    > >

    > >

    > > var

    > > Found: Boolean;

    > > begin

    > > Found := False;

    > > for I := 0 to Screen.FormCount-1 do

    > > begin

    > > if Screen.Forms[I] is TFrm_Mess then

    > > if TFrm_Mess(Screen.Forms[I]).UserName = 메세지보낸유저이름 then

    > > begin

    > > Screen.Forms[I].Show;

    > > 요기서.. -> Frm_Mess.memo1.add(메시지내용);

    > > Found := True;

    > > end;

    > > end;

    > > if not Found then // 메세지보낸유저와 대화하는 폼이 없다면

    > > begin

    > > Frm_Mess := TFrm_Mess.Create(nil); // 새로 생성

    > > Frm_Mess.Show;

    > > end;

    > > end;

    > >

    > > 위에서 '요기서' 같이 하면서... 해당창이 앞으로 show는 돼는데요...

    > >

    > > 메세지는 가장 나중에 생성된 폼에 뜨거든요.... 폼 지정을 잘못하거 같은데...

    > >

    > > Screen.Forms[I].Show; 이렇게 폼을 활성화했으면... 그 해당폼의 컴포는 어케

    > >

    > > 선택을 해야 할런지요.... 아까답변해주신 최용일님 한번더 부탁드리겠습니다.

    > >