![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Бегущая строка
Василий Петрович © (2003-05-03 11:20:00)Здравствуйте мастера! Есть STATIC. Как заставить его текст пробегать слева направо и обратно?
Nick Denrry (2003-05-03 23:43:00) [1]Попробуй еще к тому же на WM_PAINT после этого делать function UpdateWindow(Wnd: HWnd);wnd- form1.handle, к примеру. или что-то похожее со смыслом обновления окна, да и двигать сам компонент действительно круче! ( Описание:
procedure SetWindowPos(Wnd, WndInsertAfter: HWnd; X, Y, cx, cy: Integer; Flags: Word);
Изменяет pазмеp, положение и поpядок окна.
Паpаметpы:
Wnd: Идентификатоp окна.
WndInsertAfter: Пpедыдущее окно в списке администpатоpа окон.
X, Y: Веpхний левый угол.
cx: Новая шиpина окна.
cy: Новая высота окна.
Flags: Флаги установки положения окна.
Пример:
...
if findwindow("TMyWindowClass", nil) <>0 then
SetWindowPos(findwindow("TMyWindowClass", nil),
HWND_BOTTOM,1,1,20,20,SWP_nosize);
...)
2>Morfein - ты на мой бы вопрос так ответил!
2>
> Василий Петрович
а еще у STATIC сделай прозрачный фон: WM_CTLCOLORSTATIC : {Обработка лабелов}
Begin
SetBkMode(Wparam,TRANSPARENT);//Всем Static"ам прозрачный фон
Result:=GetStockObject(Null_Brush);
if (wparam<>0) and (lparam=label2) then /lable1 - белый цвет
begin
SetTextColor(wparam,rgb(255,255,255));
end;
Morfein (2003-05-03 20:42:00) [2]Угу... даже две идеи!
1. попробуй по таймеру двигать сам STATIC... :))
2. пиши свой компонент.
Василий Петрович (2003-05-03 20:23:00) [3]хех.. так-то я делал... но это очень нерационально... Может у кого-нить какие-нить еще идеи появятся?
Nick Denry (2003-05-03 19:52:00) [4]Если я правильно понял AKu, то на таймере(wm_timer:) делаешь так:
SendMessage(static //твой static
,wm_settext,0,Integer(PChar(" 1234 ")));
каждый раз с необходимым кол-вом пробелов, наверное........,
типа
wm_settext,0,Integer(PChar("1234 ")));
типа wm_settext,0,Integer(PChar(" 1234")));
Василий Петрович (2003-05-03 16:44:00) [5]Такс, таймер вроде создал...
Как теперь бы запустить ее красиво?
Nick Denry (2003-05-03 13:10:00) [6]Забыл - 50 - число миллисекунд!
Nick Denry (2003-05-03 13:09:00) [7]SetTimer и KillTimer!
Типа MyTimer:=SetTimer(Form1.Handle,0,50,nil);
и KillTimer(Form1.Handle,MyTimer) и обрабатывать WM_timer
AKu (2003-05-03 13:06:00) [8]MSDN rulez forever!
Василий Петрович (2003-05-03 12:40:00) [9]Дык прога-то на API. А на апи я таймер делать не умею :-(
AKu (2003-05-03 12:23:00) [10]А сделать таймер и изменять заголовок не пробовал?