Форум: "Основная";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
ВнизБегущая строка в StatusBar Найти похожие ветки
← →
Starcom (2005-05-22 20:08) [0]Как мне сделать бегущую строку в StatusBar?
Помогите кто может!
С Уважением Starcom! :-( Плиз...
← →
Ученик (2005-05-22 20:20) [1]>Starcom (22.05.05 20:08)
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption := Copy(Label1.Caption, 2, MaxInt)
end;
← →
Starcom (2005-05-22 21:17) [2]Спасибо!
Попробовал бежит!
procedure TForm1.Timer1Timer(Sender: TObject);
with StatusBar1 do
begin
Panels[0].Text := Copy(Panels[0].Text,2,MaxInt);
end;
Но мне хотелось бы чтобы строка не прерывалась!
С Уважением Starcom! :-}
← →
Ученик (2005-05-22 21:37) [3]>Starcom (22.05.05 21:17) [2]
Label1.Caption := Copy(Label1.Caption, 2, MaxInt) + Copy(Label1.Caption, 1, 1)
Изначально добавить требуемое количество пробелов
← →
Andy BitOff © (2005-05-23 00:42) [4]Ну, это не красиво. Красиво попиксельно.
← →
Eraser © (2005-05-23 00:49) [5]Andy BitOff © (23.05.05 00:42) [4]
имхо не намного сложнее...
вот тут один товарисч просил сделать чтобы вообще плавный переход пикселей был... ;-)
← →
Andy BitOff © (2005-05-23 01:22) [6]А я, кстати, и не говорил, что сложно. Я говорил, что красивее. Сложности тут вообще не вижу.
← →
Andy BitOff © (2005-05-23 02:35) [7]Вот, минут 15. Не оптимизировал ничего, на скорую руку, так что прошу не пинать. Я не писал универсальный компонент =)
var
Form1: TForm1;
x:integer=0;
PanelIndex:integer=0;
Str:string="My ScrollBar Text bla-bla-bla";
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
var
I: Integer;
bmp:TBitMap;
a:integer;
begin
if (StatusBar1.Panels.Count<>0) and (StatusBar1.Panels.Count>=PanelIndex) then begin
bmp := TBitMap.Create;
try
bmp.Width:=StatusBar1.Panels.Items[PanelIndex].Width;
bmp.Height:=StatusBar1.Height;
bmp.Canvas.Brush.Color:=StatusBar1.Color;
bmp.Canvas.Pen.Color:=StatusBar1.Font.Color;
bmp.Canvas.FillRect(StatusBar1.Canvas.ClipRect);
if x=-bmp.Canvas.TextWidth(str) then x:=StatusBar1.Panels.Items[PanelIndex].Width;
bmp.Canvas.TextOut(x,1,Str);
dec(x);
a:=0;
for I:=0 to PanelIndex-1 do begin
a:=a+StatusBar1.Panels.Items[i].Width;
end;
bitblt(StatusBar1.Canvas.Handle,a+3,3,bmp.Width-4,bmp.Height-4,bmp.Canvas.Handle,0,0,SRCCOPY);
finally
bmp.Free;
end;
end;
end;
← →
Starcom (2005-05-24 12:49) [8]Das ist fantastish!
Спасибо всем кто откликнулся на мою просьбу...
А лично Ученику!
Но вариант от Andy BitOff ©, мне наиболее приемлим!
С Уважением Starcom! :-)
← →
lmz © (2005-05-24 14:58) [9]А как сделать чтобы текст двигался не справва на лево, а сверху вниз?
← →
Andy BitOff © (2005-05-24 15:34) [10]
lmz © (24.05.05 14:58) [9]
А как сделать чтобы текст двигался не справва на лево, а сверху вниз?
Менять не х, а y. и проверять выход не по Width, а по Height.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.015 c