delphi бегущая строка



Бегущая строка delphi

Автор PSeudo задал вопрос в разделе Другие языки и технологии

Как сделать бегущую строку на делфи 7 ? и получил лучший ответ

Ответ от ?[гуру]
Что-то типа такого:
var
s: string = 'Бегущая строка ';
procedure TForm1.Timer1Timer(Sender: TObject);
begin
s := s + s[1];
Delete(s, 1, 1);
Caption := s;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Interval := 200;
end;

Ответ от Johnsilver[гуру]
т. е. ты меняешь саму текстовую строку?
для вывода строки какой компонент используется?

Ответ от User51942[гуру]
засунь label в panel и двигай его по таймеру

Ответ от Андрей Журавлев[гуру]
<...>
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TRanString = class
Wnd: TPanel;
Str1: TLabel;
Str2: TLabel;
Tmr: TTimer;
Spd: Cardinal;
Sft: Cardinal;
private
procedure MoveText(Sener: TObject);
public
constructor Create(Form: TForm; Rect: TRect; Text: String;
IntervalMS: Cardinal);
destructor Destoy;
end;
var
Form1: TForm1;
RS: TRanString;
implementation
{$R *.dfm}
{ TRanString }
constructor TRanString.Create(Form: TForm; Rect: TRect; Text: String;
IntervalMS: Cardinal);
var
Ln: Cardinal;
begin
Wnd := TPanel.Create(Form);
Wnd.BoundsRect := Rect;
Wnd.BevelInner := bvLowered;
Wnd.DoubleBuffered := TRUE;
Wnd.Parent := Form;
Str1 := TLabel.Create(Form);
Str1.Caption := Text;
Str1.Top := (Wnd.Height div 2) - (Str1.Height div 2);
Str1.Parent := Wnd;
Str2 := TLabel.Create(Form);
Str2.Caption := Text;
Str2.Top := Str1.Top;
Str2.Parent := Wnd;
if Str2.Width < Wnd.ClientWidth then
Sft := Wnd.ClientWidth
else
Sft := Str2.Width + 5;
Str2.Left := Sft;
Tmr := TTimer.Create(Form);
Tmr.Interval := IntervalMS;
Tmr.OnTimer := MoveText;
Tmr.Enabled := TRUE;;
Spd := IntervalMS;
end;
destructor TRanString.Destoy;
begin
Str1.Destroy;
Str2.Destroy;
Wnd.Destroy;
Tmr.Destroy;
end;
procedure TRanString.MoveText(Sener: TObject);
begin
Str1.Left := Str1.Left - 1;
Str2.Left := Str2.Left - 1;
if abs(Str1.Left) = Sft then
Str1.Left := Sft;
if abs(Str2.Left) = Sft then
Str2.Left := Sft;
end;
// ---------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
RS := TRanString.Create(Form1, Bounds(10, 10, 200, 20),
'Тестовый текст! ', 50);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
RS.Destoy;
end;
end.
с тебя печенька)

Ответ от Atalia trusova[новичек]

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Как сделать бегущую строку на делфи 7 ?
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*