제가 할려고 하는 것은 상태바의 패널에 움직이는 글자를 만들려고 합니다.
만약 정보내용이 "지금 프로그램을 모두 닫아주세요' 라면...
상태바의 패널창에서....즉 오른쪽에서 부터 "지금 프로그램을 모두 닫아주세요" 라는 글자내용이 왼쪽으로
이동하는 것입니다.
타이머와 상태바의 StatusBar1DrawPanel 이벤트에서 구현을 하고 repaint 했습니다.
즉 소스가..
버튼을 클릭했을때..
procedure TForm1.Timer1Timer(Sender: TObject);
begin
StatusBar1.Repaint;
end;
procedure TForm1.Button1Click(Sender: TObject);
var StatusPanel: TStatusPanel;
begin
StatusBar1.Tag := 0;
StatusBar1.OnDrawPanel := StatusBar1DrawPanel;
StatusPanel := StatusBar1.Panels.Items[0];
StatusPanel.Style := psOwnerDraw;
Timer1.Interval := 220;
end;
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
const Rect: TRect);
var sPan, LsPan, i: integer;
begin
StatusBar.Tag := (StatusBar.Tag + 4) mod StatusBar.Width;
StatusBar.Canvas.Font.Color := clred;
StatusBar.Canvas.TextOut(StatusBar.Width-StatusBar.Tag, 6, '지금 프로그램을 모두 닫아주세요'
end;
위 소스내용과 같습니다.
즉 오른쪽으로 지정한 글자내용이 타이머에 따라 이동되어 보입니다.
문제는 글자가 오른쪽에서 왼쪽으로 이동하는데..
패널의 왼쪽으로 '지금' 이라는 단어가 위치하면 다시 자동으로 오른쪽으로 글자가 이동하여 처음부터 다시 오른쪽에서 왼쪽으로 이동합니다..
즉 왼쪽으로...'지금'이라는 단어가 오고 마지막으로.. '닫아주세요'에서 '요'라는 글자까지 왔을때 오른쪽끝으로 모든 문장내용이 이동하여 처음부터 다시 글자가 이동했으면 합니다.