"Kingsoft PowerWord" 또는 "Orient Express"를 사용한 적이 있다면 "About" 창의 롤링 자막에 확실히 관심이 있으실 것입니다. 실제로 이 기능은 Delphi의 Timer 컨트롤을 사용하여 쉽게 구현할 수 있습니다.
1. 디자인 아이디어
먼저 폼에 Panel 컨트롤을 배치하고 Panel 컨트롤에 표시해야 할 텍스트를 배치한 다음 Timer 컨트롤을 통해 Panel 컨트롤의 위치를 일정 간격 내에서 계속 변경하여 롤링 효과를 얻을 수 있습니다. 자막.
2. 시행방법
1. 새 양식을 만들고 다음과 같이 속성을 설정합니다.
이름:frmAbout1
자동스크롤:거짓
2. 양식에 Panel 컨트롤을 배치하고 기본 이름은 Panel1이며 속성을 다음과 같이 설정합니다.
경사 외부:bvNone
캡션: (비어 있음으로 설정)
Panel1의 높이와 너비를 조정하여 수직 스트립으로 만듭니다. 높이는 표시할 콘텐츠에 따라 다릅니다(양식의 높이보다 클 수 있음).
3. Panel1에 Label 컨트롤을 배치하여 텍스트를 표시합니다. 물론 Image 컨트롤을 배치하여 그림을 표시할 수도 있지만 그림 크기가 너무 커서는 안 됩니다. 그렇지 않으면 표시 효과에 영향을 미칩니다.
4. Timer 컨트롤을 폼에 배치합니다. 기본 이름은 Timer1입니다. Interval 속성 값을 50으로 설정하고 OnTimer 이벤트에 다음 코드를 입력합니다.
만약 Panel1.top>-Panel1.height이면
Panel1.top:=Panel1.top-1
또 다른
Panel1.top:=frmAbout1.height-35;
{Panel1이 양식의 상단으로 이동했는지 확인합니다. 그렇지 않은 경우 한 픽셀 위로 이동하고, 그렇다면 Panel1을 양식의 하단으로 이동하고 자막을 반복적으로 표시합니다.
5. 폼에 Button 컨트롤을 배치하고 Caption 속성을 "OK"로 설정한 후 OnClick 이벤트에 다음 코드를 입력합니다.
close;{양식 닫기}
3. 분석 개선
위는 롤링 자막의 간단한 구현 프로세스이지만 아직 추가 개선이 필요한 영역이 하나 있습니다. 양식에서 그림을 배경으로 사용하는 경우 패널 컨트롤이 배경 패턴의 일부를 차단합니다. 실제로 이 문제를 해결하기 위해 Panel 컨트롤을 전혀 사용할 수 없고, Label 컨트롤을 폼에 직접 배치하고, Label 컨트롤의 Transparent 속성값을 True로 설정한 후, Timer를 통해 이러한 Label 컨트롤을 직접 제어합니다. 움직임의 통제. 지면의 제약으로 인해 저자는 여기에서 자세히 설명하지 않습니다.