Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1116676673
antol
2005-05-21 15:57
2005.06.06
как ввести логическое выражение


6-1111128147
leonidus
2005-03-18 09:42
2005.06.06
Копирование файлов по локальной сети


14-1116594156
syte_ser78
2005-05-20 17:02
2005.06.06
Небольшая задачка


4-1113380006
ASoft
2005-04-13 12:13
2005.06.06
Как "запустить" функцию?


14-1116579871
Dimich1978
2005-05-20 13:04
2005.06.06
музыка из к/ф, реклама Фруктовый сад





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский