Q&A

  • label콤포넌트를 이용하여 caption안의 내용이 움직이게..
안녕하세요...

메인폼 하나에 label콤포넌트를 놓고 label콤포넌트 caption속성에 '내이름은 이치형입니다'라고 넣고,,, 프로그램을 실행 시키면 label콤포넌트 caption안의 내용이 좌측으로 계속

이동 되면서 보여지게 하고 싶어요,tv 같은데 보면 화면 아래쪽에 자막이 왼쪽으로 계속 이동

하면서 내용이 보이다가 그 내용이 완전이 안보이면 다시 오른쪽에서 왼쪽으로 광고 문구가

다시 나타 나는 것을 보았을 것입니다. 그것을 구현하고 싶습니다. 메인폼의 FormActivate 이벤트를 이용하여 label콤포넌트의 Left 속성 값을 2나 10씩 감소 시켰더니, label 컴포넌트가

이동 되는게 아니라 label콤포넌트 안의 내용만 몇번 보이다가 나중에는 안보이더라구요...

아래 소스를 참조하여 답변 부탁드립니다...

procedure Tfrmtest.FormActivate(Sender: TObject);

var i: Integer;

begin

LDisplay.Caption := '내이름은 이치형입니다';

While(True) do

begin

if LDisplay.Left = 0 then

LDisplay.Left := Width - 26;

LDisplay.Left := LDisplay.Left - 2;

LDisplay.Refresh;

end;

end;



2  COMMENTS
  • Profile
    임철우 2001.12.12 05:26
    내용은 잘 보았습니다.

    그런식으로 해도 되겠지요 하지만 간단한 명령어가 있는데 그렇게 할 필요가 있을까요

    한번 제가 만든것을 참조해 보세요.

    Info ->라벨

    _str : string;



    if (Length(Info) > 20) then

    begin

    SetLength(_str, Length(Info));

    Move(Info[2], _str[1], Length(Info)-1);

    _str[length(_str)] := Info[1];

    Info := _str;

    end;

    OSDInfo.Caption := OSDInfoTxt;



    이런 식으로 하면 원하시는 대로이동을 할꺼에요. 제가 사용한 것은 만약 문자의 크기를 넣고

    거기에 만족하지 못하면 길이를 만드는 거죠. 그래서 move명령을 이요해 왼쪽으로 이동하키는

    방법이죠. 당연히 타이머에 넣어야 겠죠.. 원하시는 답이 이건지 모르겠네요

    윈엠프에서 제목나오는것 처럼요..^^





    이치형 wrote:

    > 안녕하세요...

    > 메인폼 하나에 label콤포넌트를 놓고 label콤포넌트 caption속성에 '내이름은 이치형입니다'라고 넣고,,, 프로그램을 실행 시키면 label콤포넌트 caption안의 내용이 좌측으로 계속

    > 이동 되면서 보여지게 하고 싶어요,tv 같은데 보면 화면 아래쪽에 자막이 왼쪽으로 계속 이동

    > 하면서 내용이 보이다가 그 내용이 완전이 안보이면 다시 오른쪽에서 왼쪽으로 광고 문구가

    > 다시 나타 나는 것을 보았을 것입니다. 그것을 구현하고 싶습니다. 메인폼의 FormActivate 이벤트를 이용하여 label콤포넌트의 Left 속성 값을 2나 10씩 감소 시켰더니, label 컴포넌트가

    > 이동 되는게 아니라 label콤포넌트 안의 내용만 몇번 보이다가 나중에는 안보이더라구요...

    > 아래 소스를 참조하여 답변 부탁드립니다...

    > procedure Tfrmtest.FormActivate(Sender: TObject);

    > var i: Integer;

    > begin

    > LDisplay.Caption := '내이름은 이치형입니다';

    > While(True) do

    > begin

    > if LDisplay.Left = 0 then

    > LDisplay.Left := Width - 26;

    > LDisplay.Left := LDisplay.Left - 2;

    > LDisplay.Refresh;

    > end;

    > end;

    >

  • Profile
    최용일 2000.03.28 00:51
    아래의 코드는 완전한 무한루프이군요. 그리고 라벨컴포넌트가 이동되는것이 아니라고



    하셨는데 이동되는 것이 맞습니다.



    이러한 것은 폼의 이벤트에다 하는 것이 아니고 쓰레드나 타이머를 이용하여 해야됩니다.



    이치형 wrote:

    > 안녕하세요...

    > 메인폼 하나에 label콤포넌트를 놓고 label콤포넌트 caption속성에 '내이름은 이치형입니다'라고 넣고,,, 프로그램을 실행 시키면 label콤포넌트 caption안의 내용이 좌측으로 계속

    > 이동 되면서 보여지게 하고 싶어요,tv 같은데 보면 화면 아래쪽에 자막이 왼쪽으로 계속 이동

    > 하면서 내용이 보이다가 그 내용이 완전이 안보이면 다시 오른쪽에서 왼쪽으로 광고 문구가

    > 다시 나타 나는 것을 보았을 것입니다. 그것을 구현하고 싶습니다. 메인폼의 FormActivate 이벤트를 이용하여 label콤포넌트의 Left 속성 값을 2나 10씩 감소 시켰더니, label 컴포넌트가

    > 이동 되는게 아니라 label콤포넌트 안의 내용만 몇번 보이다가 나중에는 안보이더라구요...

    > 아래 소스를 참조하여 답변 부탁드립니다...

    > procedure Tfrmtest.FormActivate(Sender: TObject);

    > var i: Integer;

    > begin

    > LDisplay.Caption := '내이름은 이치형입니다';

    > While(True) do

    > begin

    > if LDisplay.Left = 0 then

    > LDisplay.Left := Width - 26;

    > LDisplay.Left := LDisplay.Left - 2;

    > LDisplay.Refresh;

    > end;

    > end;

    >